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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值