Android 多部分短信 - 单独接收

标签 android sms-gateway

我正在开发一个短信网关应用程序,它从客户端应用程序接收短信,对其执行一些操作并将数据上传到服务器。

在客户端应用程序中,当消息长度超过 160 个字符时,我会在使用 divideMessage 方法拆分消息后执行 sendMultipartTextMessage。但是,当在 SMS 网关设备中接收到消息时,BroadcastReceiveronReceive 每次调用仅获得一个 PDU 并且消息的不同部分收到相同的短信作为不同的短信。

是否有一些设置可以接收多部分短信?我正在使用华为 u8150 Helios 设备作为网关。我已对设备进行 root 操作,如果需要,我可以更改系统设置。

提前致谢。

最佳答案

对于那些正在寻找我如何解决这个问题的人,这就是我所做的:

发件人:

  • 而不是使用内置的 divideMessage , 我创建了自己的 divideMessage返回 ArrayList<String> ,其中每个元素都有一个前缀,其长度为 <= 150(根据经验找到的数字)。
  • 发送以上获得的ArrayList<String>使用内置 sendMultipartTextMessage 的消息.

接收方:

  • 获取消息的前缀并将消息存储在本地数据库中。
  • 从前缀看它的所有其他部分是否已经到达。如果是,合并所有部分并处理。

注意:前缀中包含的内容以及所有部分如何合并不在本次讨论的范围内。

关于Android 多部分短信 - 单独接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251859/

相关文章:

java - 有没有办法稍后使用 Twilio 发送短信

sms - 无法回复来自 twilio 的消息

ubuntu - 如何在 Ubuntu 12.04 上使用带有 smstools3 的电话调制解调器

java - 问答游戏中的 CountDownTimer,NullPointer - Android (java)

android - 如何在SipDroid项目中添加g729编解码器?

android - 在动画android期间获取imageview的坐标

java - Android StringTokenizer - 读取空白值

java - 为什么我不能从 AsyncTask 加载位图?

java - 为什么短信积分不从我们用 java 编写的短信销售门户上的用户帐户中扣除

php - gammu发送短信返回错误29