我有一个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.....