电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Android短彩信收发流程(应用层)

Android短彩信收发流程(应用层)_第1页
1/12
Android短彩信收发流程(应用层)_第2页
2/12
Android短彩信收发流程(应用层)_第3页
3/12
Android 短彩信收发流程(应用层) 下图为ComposeMessageActivity 中 confirmSendMessageIfNeeded 部分的信息发送流程。主要以接收者有效性的确认为主,然后转向sendMessage 方法进行发送。 下图为ComposeMessageActivity 中 confirmSendMessageIfNeeded 部分的信息发送流程。主要以接收者有效性的确认为主,然后转向sendMessage 方法进行发送。 WorkingMessage.send 从下图可以看出,在本方法中,对于不同类型的消息,分别调用不同的方法对其进行处理。并对彩信进行一些简要的预处理。 短信部分: WorkingMessage.preSendSmsWorker 如下图所示,这是短信部分的发送流程。本方法中所涉及到的东西就比较多了。由于已经转到了新线程中利用 WorkingMessage 进行消息的发送,那么原来 ComposeMessage 中的那个WorkingMessage 就可以更新了。然后确认一下所属的会话是否存在,如果不存在就新建一个。 接着,将接收者序列化,调用 sendSmsWorker。创建一个 SmsMessageSender,将消息存入发送队列中(type 字段设为 6)。通知 SmsReceiver 发送。 SmsReceiver 则调用 SmsReceiverService 发送队列中的第一条短信。 在发送之前,还要根据手机卡的不同,将短信内容分成若干块,保证每块的大小不超过该卡的限制。在分段后的最后一条短信的 sentIntent 中,设置 EXTRA_MESSAGE_SENT_SEND_NEXT 为true。这样当短信发送成功后,会调用 SmsReceiverService 的 handleSmsSent 方法,发送队列中的第一条。 然后,对每块都指定一个 sentIntent,当发送出去之后,修改其状态。若需要报告,还会指定一个 deliveryIntent,用于消息报告的处理。这两个 Intent 都会被封装到 SmsTracker 中,当发送成功后,在 SMSDispatcher 的 handleSendComplete 中被取出。sentIntent 会被立即执行,将消息状态转为已发送。而deliveryIntent 则会被加入 deliveryPendingList,等收到消息报告后才被执行(具体代码在不同的 dispatcher 中)。 发送完毕后,还要对短信上限、消息显示列表、草稿进行相应的处理。 SmsReceiverService.handleSmsSent 消息发送后的处理 当sentIntent 被执行后,会根据不同的结果更新消息的所处信箱 MessageStatusReceiver 消息报告 当需要接收报告时,会在报告收到之后,在SMSDispatcher 中根据不同类型手机从deliveryPendingList 中取出并执行相应的 deliveryIntent SmsReceiverServi...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Android短彩信收发流程(应用层)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部