Создайте составленное SMS UDH и добавьте его к тексту сообщения.
Чтобы отправить SMS (7-битное) длиннее 160 символов, вам нужно разбить сообщение на 153-символьные части данных сообщения и поставить перед каждой из них 5-октетный UDH (заголовок пользовательских данных), объяснив, что это части составное SMS-сообщение, которое должно быть «повторно собрано» принимающим устройством.
Поскольку UDH отправляется как часть данных сообщения, любая служба, через которую я его отправляю, должна, будем надеяться, игнорировать ее и отправлять на телефон получателя, который расшифрует его и объединит части длинного SMS.
Я использую следующий тестовый код, но я получаю два отдельных сообщения. Любые предложения относительно того, что я делаю неправильно?
private void sendButton_Click(object sender, EventArgs e)
{
if ((cellNumberText.Text.Trim().Length == 10) && (messageText.Text.Trim().Length > 0))
{
SendSms(cellNumberText.Text.Trim(), BuildUdh(255, 2, 1) + "Hello first time. ");
SendSms(cellNumberText.Text.Trim(), BuildUdh(255, 2, 2) + "Hello second time. ");
}
}
private string BuildUdh(byte messageId, byte partCount, byte partId)
{
var udg = new byte[5];
udg[0] = 0x00;
udg[1] = 0x03;
udg[2] = messageId;
udg[3] = partCount;
udg[4] = partId;
return BitConverter.ToString(udg);