Отправка длинного сообщения с компьютера на мобильный в VB6

Я хочу отправить длинное смс (более 160 символов) с компьютера на мобильный. Я использую управление MSComm в VB6. Он хорошо работает с небольшими сообщениями, но когда мое сообщение превышает 160 символов, оно показывает, что отправка прошла успешно, но сообщение не доставлено.

With MSComm1
    .CommPort = port
    .Settings = "9600,N,8,1"
    .Handshaking = comRTS
    .RTSEnable = True
    .DTREnable = True
    .RThreshold = 1
    .SThreshold = 1
    .InputMode = comInputModeText
    .InputLen = 0
    .PortOpen = True 'must be the last
End With

'Send an 'AT' command to the phone
MSComm1.Output = "AT" & vbCrLf
Sleep 500
MSComm1.Output = "AT+CMGF=1" & vbCrLf 'This line can be removed if your modem will always be in Text Mode...
Sleep 500
MSComm1.Output = "AT+CMGS=" & Chr(34) & mnumber & Chr(34) & vbCrLf  'Replace this with your mobile Phone's No.
Sleep 1000
MSComm1.Output = TxtMessage.Text & Chr(26)

person Tauqeer Shah    schedule 26.01.2016    source источник


Ответы (1)


Вы не можете отправить сообщение, длина которого превышает 160 символов.

Когда ваш телефон получает длинное сообщение, на самом деле он получает несколько сообщений и объединяет их вместе, это называется Составные SMS.

Для этого вам потребуется переключиться из Текстового режима (как вы в данный момент взаимодействуете с устройством) в режим PDU; это позволяет вручную установить заголовок SMS-сообщения (UDH).

В UDH вы можете установить флаг (IEI), указывающий, что сообщение представляет собой составное SMS, общее количество частей и текущий номер части. Затем вы можете отправить несколько коротких сообщений и положиться на то, что принимающая сторона склеит их вместе.

person Alex K.    schedule 27.01.2016
comment
Я прочитал несколько руководств по режиму PDu, но мне не удалось отредактировать приведенный выше код. Пожалуйста, дайте мне какую-нибудь инструкцию по изменению моего вышеуказанного ocde. - person Tauqeer Shah; 27.01.2016