我正在编写Android APK以通过短信管理GPS跟踪器。我的软件有一个特殊的通知部分,可以解码设备通过短信发送的所有警报。问题是一些电话公司对SMS长度使用不同的限制,因此我的代码由于截断的消息而失败。我测试了三家不同的本地公司,其中一些使用140个字符,而其他公司使用70个字符。我的问题......是否有任何可靠的方法来获取该参数?我已经阅读了所有SDK文档,但没有发现类似但显而易见的常数MAX_USER_DATA_BYTES。
答案 0 :(得分:2)
由于这是一个非常复杂的问题,需要将标准和协议的不同部分拼凑在一起,我决定发布我找到的所有信息,以便像我一样解决这个问题。
所有检查都应直接在PDU数据中完成,访问位和字节,在SmsMessage中使用getPdu()
或直接从SMS PDU
中的Bundle访问onReceive()
数组{{} 1}}。
首先,我们需要检查两件事来检测多部分短信:
BroadcastReceiver
IDH
,第6位
PDU_TYPE
中存在多部分指标,IDH
信息在检测到多部分消息后,我们需要通过检查CSMS标识符,部件数量和部件索引来识别属于同一多部件的消息。
UDH