如何获得SMS的最大长度?

时间:2013-01-14 21:00:33

标签: android sms

我正在编写Android APK以通过短信管理GPS跟踪器。我的软件有一个特殊的通知部分,可以解码设备通过短信发送的所有警报。问题是一些电话公司对SMS长度使用不同的限制,因此我的代码由于截断的消息而失败。我测试了三家不同的本地公司,其中一些使用140个字符,而其他公司使用70个字符。我的问题......是否有任何可靠的方法来获取该参数?我已经阅读了所有SDK文档,但没有发现类似但显而易见的常数MAX_USER_DATA_BYTES。

1 个答案:

答案 0 :(得分:2)

由于这是一个非常复杂的问题,需要将标准和协议的不同部分拼凑在一起,我决定发布我找到的所有信息,以便像我一样解决这个问题。

所有检查都应直接在PDU数据中完成,访问位和字节,在SmsMessage中使用getPdu()或直接从SMS PDU中的Bundle访问onReceive()数组{{} 1}}。

首先,我们需要检查两件事来检测多部分短信:

  1. BroadcastReceiver
  2. 中出现IDH,第6位
  3. PDU_TYPE中存在多部分指标,IDH信息
  4. 的第二个字节

    在检测到多部分消息后,我们需要通过检查CSMS标识符,部件数量和部件索引来识别属于同一多部件的消息。

    UDH
相关问题