Android Long SMS

SEND:

ap在发送long sms之前,会调用Framework的SmsManager的divideMessage()函数,将信息进行切分,然后sendMultipartTextMessage()判断是否为long sms,如果是调用sendMultipartText,以long sms的方式发送出去,否则为generic sms

RECEIVE:

接收到long sms的时候,SMSDispatcher会检查sms是否有header & header.ConcatRef,如果存在,则为long sms的part,交给processMessagePart函数去处理

processMessagePart函数的处理流程:

1.根据long sms的reference_number & address query出和当前part相关的part信息(From raw table)

2.比对信息数量,看是否已经接收到了所有的parts

2.1如果没接收到所有的parts,将当前的part存储到DB

2.2如果接收到所有的parts,取出所有相关parts的相关数据进行拼接,然后从DB中删除所有相关的parts,发送广播

PS:long sms的parts存在DB中的raw表中
假如一条long sms被切分为两条parts,我们的device只接收到其中的一条part,由于generic sms的数据存储在sms表中,raw表中的残余part不会对generic sms造成影响,所有不做任何操作(保不齐哪天那条丢失的part神奇般的又出现了)

更多相关文章

  1. 【demo记录】极光推送(android app访问服务器,服务器推送信息到新a
  2. Android OpenGL库函数列表
  3. Android短彩信数据库信息整理
  4. android 获取手机信息(device ip,os version etc.)
  5. Android 通过经纬度获取地理位置信息
  6. android 手机获取当前连接的wifi配置信息
  7. android 获取手机系统信息
  8. android 存储一些app配置信息
  9. android GPS JAVA应用程序编程-------获得经纬度,卫星信息等

随机推荐

  1. 【Android学习系列】Android- Service总
  2. android 中的两个文件夹res/raw和assets
  3. Android(安卓)4.2.2字体渲染流程
  4. android 学习 -- 插件形开发,动态部署,消息
  5. Android高仿微信图片多选功能
  6. Android需不需要手动退出
  7. [置顶] 我的Android进阶之旅------>Andro
  8. MPAndroidChart3图表库的使用
  9. 网页二维码推广App的实现
  10. Android(安卓)webview与H5混合开发 -- H5