Android 短彩信收发流程

下图为 ComposeMessageActivity 中 confirmSendMessageIfNeeded 部分的信息发送流程。主要以

接收者有效性的确认为主,然后转向 sendMessage 方法进行发送。

下图为 ComposeMessageActivity 中 confirmSendMessageIfNeeded 部分的信息发送流程。主要以

接收者有效性的确认为主,然后转向 sendMessage 方法进行发送。 b5E2RGbCAP

1 / 13

WorkingMessage.send

从下图可以看出,在本方法中,对于不同类型的消息,分别调用不同的方法对其进行处理。并

对彩信进行一些简要的预处理。 p1EanqFDPw

2 / 13

短信部分:

WorkingMessage.preSendSmsWorker

如下图所示,这是短信部分的发送流程。本方法中所涉及到的东西就比较多了。由于已经转到

了新线程中利用 WorkingMessage 进行消息的发送,那么原来 ComposeMessage 中的那个

WorkingMessage 就可以更新了。然后确认一下所属的会话是否存在,如果不存在就新建一

个。 DXDiTa9E3d

接着,将接收者序列化,调用 sendSmsWorker。创建一个 SmsMessageSender,将消息存入发

送队列中

SmsReceiver则调用 SmsReceiverService发送队列中的第一条短信。

在发送之前,还要根据手机卡的不同,将短信内容分成若干块,保证每块的大小不超过该卡的

限制。在分段后的最后一条短信的 sentIntent 中,设置 EXTRA_MESSAGE_SENT_SEND_NEXT为

true 。这样当短信发送成功后,会调用 SmsReceiverService的 handleSmsSent 方法,发送队列中

的第一条。 5PCzVD7HxA

然后,对每块都指定一个 sentIntent ,当发送出去之后,修改其状态。若需要报告,还会指定

一个 deliveryIntent ,用于消息报告的处理。这两个 Intent 都会被封装到 SmsTracker 中,当发

送成功后,在 SMSDispatcher 的 handleSendComplete 中被取出。 sentIntent 会被立即执行,将

消息状态转为已发送。而 deliveryIntent 则会被加入 deliveryPendingList ,等收到消息报告后才

被执行

发送完毕后,还要对短信上限、消息显示列表、草稿进行相应的处理。

3 / 13

SmsReceiverService.handleSmsSent消息发送后的处理

当 sentIntent 被执行后,会根据不同的结果更新消息的所处信箱

4 / 13

MessageStatusReceiver消息报告

当需要接收报告时,会在报告收到之后,在 SMSDispatcher 中根据不同类型手机从

deliveryPendingList 中取出并执行相应的 deliveryIntent xHAQX74J0X

5 / 13

SmsReceiverService.handleSmsReceived接收短信

当 RILReceiver有消息收到时,会从 RIL 向上传递,经由 SMSDispat

android 彩信 下载流程,android短彩信收发流程(应用层).pdf相关推荐

  1. Android短彩信源码解析-短信发送流程(一)

    转载请注明出处:http://blog.csdn.net/droyon/article/details/10194591 源码版本来自:Android4.0.3 忙了两三个月,终于有时间可以写点东西了 ...

  2. ios 原生android系统下载地址,Android/iOS已有原生项目集成ReactNative

    背景 近期由于项目需要,在已经开发了几个版本的原生App中集成了ReactNative,新版的模块都使用RN开发. 此次集成的工作大部分是参照RN中文文档进行的,但是中文文档也有一些坑和描述不充分的地 ...

  3. android服务下载apk,android下载apk并安装

    1.设置权限 2.业务代码 package com.example.esri.app04.network; import android.app.ProgressDialog; import andr ...

  4. android p下载地址,Android P发布,4款国产手机可体验,附下载地址

    在今年的谷歌 I / O 大会上 ,谷歌发布了 Android 系统最新版本 -- Android P.相比历史版本,Android P更加简单.智能. 界面方面,Android P新增了一个核心界面 ...

  5. android 调用下载,使用Android系统提供的DownloadManager来下载文件

    在android2.3以后android系统提供了一个系统组件来供其他app调用来下载东西,使用起来非常方便. 例如我们可以拿来下载app的新版本apk,同时在同时注册一个广播接收器来接收下载完成时D ...

  6. android服务下载apk,Android 一个简单的版本更新下载apk小示例

    一.简介: 1.运用 okhttp + notification 通知栏带进度的下载apk,下载完毕后并自动安装,如果用户取消可在通知栏点击安装,点击一次通知栏移除,同时支持自动静默下载(后台默默下载 ...

  7. Android Studio下载查看Android API的方法

    使用Android Studio下载并查看API的方法如下所示: 1.打开Android Studio,点击"SDK Manager",选中"SDK Platforms& ...

  8. Android SDK下载失败-Android SDK Manager国内无法更新的解决方案

    本文转载自http://www.linuxidc.com/Linux/2015-01/111958.htm,向原作者表示感谢!如有侵权,请联系我删除. 现在google基本和咱们说咱见了,就给现在在做 ...

  9. android 可下载字体,Android Oreo 可下载字体

    要以编程方式使用可下载字体功能,您需要与两个关键类进行交互:android.graphics.fonts.FontRequest: 这个类允许您创建一个字体请求 FontsContract:这个类允许 ...

  10. ios版android wear下载,非Android Wear用户福音,iOS版三星Gear手表管理app泄露

    过去很长一段时间里,三星一直在开发针对自家智能手表的管理工具Gear Manager,尤其是iOS操作系统的版本.虽然三星当初表示,预计今年早些时候就能够正式发布,但是直到现在才接近于开发的最后阶段. ...

最新文章

  1. ScratchCardView:刮刮卡视图组件
  2. 关于redo(二)插入更新数据时的效率比较
  3. STM32休眠后不能烧录程序
  4. spring boot打包文件后,报错\No such file or directory
  5. hbase中对deadserver处理存在的问题
  6. postfix 部署ssl后还是25_宝塔面板的邮局管理器Postfix无法启动解决办法
  7. 广技师计算机毕业都去哪,广东哪间大学的计算机专业比较好???
  8. 2020年最好用的手机是哪一款_2020,哪款5G手机最值得入手?
  9. 瀑布流JavaScript
  10. matlab实验shi,matlab 实验六 古典密码与破译
  11. redis的运行机制
  12. 大工18春《c和c语言程序设计》,东大21春《高级语言程序设计基础》在线平时作业1题目及答案...
  13. PDF证书加密文件如何解密?
  14. 深度学习-1.3卷积神经网络
  15. Windows Server 2012 R2 安装 Docker
  16. 轻量级微信小说小程序源码+UI不错/很火的
  17. 笔记本电脑清除BIOS密码
  18. XDUOJ题解合集(待填坑)
  19. 市场分析——行业背景分析
  20. 汽车电子学习笔记—AutoSAR之基础软件层(BSW)

热门文章

  1. k8s和harbor的集成_Harbor与K8s的集成实践
  2. x64dbg调试程序遇到异常:406D1388,MS_VC_EXCEPTION. E06D7363, CPP_EH_EXCEPTION
  3. 强大易用的网页在线excel转json工具,值得一看
  4. MATLAB randint替换为randi函数的操作
  5. Altium20.1使用教程 PCB板绘制方法 电饭煲电路设计
  6. window server2012服务器远程桌面连接黑屏,无法打开任务管理器,无法执行ctrl+del+end终极解决大法,所有快捷键都不好使_远程重启大法
  7. mysql季度查询_mysql按年度、季度、月度、周、日SQL统计查询
  8. html 打印预览跟实际不一样,打印预览和打印出来的不一样(总结自己遇到的问题和解决方法)...
  9. Docker:windows7系统环境下安装docker:Manifest extraction failed: 找不到Windows运行时类型Windows.Data.Json.JsonObject
  10. 简易CPU,模型机的制作