发送串联的短信时,我可以将UDH的“参考号”字段设置为16位而不是8位

时间:2019-04-03 13:20:27

标签: android sms smsmanager

我有一个Android应用程序,可以使用SmsManager发送多部分短信。通过SMPP接收短信。推论是,有时两条不同的消息来自具有相同UDH(用户数据标头)的App,当我们的短信门方法尝试合并这些消息的不同部分时,会导致问题。

我从wikipedia article中得知,UDH可以使用16位参考号(而不是8位),这将有助于降低两个不同消息具有相同参考号的可能性。

这是我使用的代码,它添加了带有8位引用的UDH。数字

SmsManager sms=SmsManager.getDefault();
ArrayList messageParts = sms.divideMessage(msg);
...                       
sms.sendMultipartTextMessage(Config.SMS_NUMBER, null, messageParts, pendingIntents, null);

使用上述代码发送长SMS时,它在sms网关上分为两部分,每部分都包含这样的UDH

05 00 03 {4A}(8-bit ref. no.) 02 01.....
05 00 03 {4A}(8-bit ref. no.) 02 02..... 

我的问题是,有没有办法告诉Android系统使用该16位参考号?

使用这样的UDH在网关上接收SMS:

06 08 04 {4A FE}(16-bit ref. no.) 02 01.....
06 08 04 {4A FE}(16-bit ref. no.) 02 02..... 

0 个答案:

没有答案