android中Mms学习笔记——短信(sms)接收流程(三)

在笔记二中对短信的发送流程做了梳理,下面将对短信接受的流程做一下梳理。

一。当RILReceiver有消息收到时,会从RIL向上传递,经由SMSDispatcher的dispatchPdus方法生成Intent调用PrivilegedSmsReceiver。而再由PrivilegedSmsReceiver传给SmsReceiverService。

     SmsReciverService的作用是当作一个"工作线程",允许我们将收到的短信存入数据库,更新通知。在不阻塞主线程运行的情况下,运行SmsReceiver。使用的广播为:DATA_SMS_RECEIVED_ACTION。当收到这个广播后,SmsReciverService将会调用handleSmsReciver()方法来做处理。进入该方法后的操作如下:

1.从Intent中获得短信,并且放到短信的数组中。

2.需要区分信息是否为直接显示的类型,如果是则直接转到ClassZeroActivity显示短信。如果不是,则需要分是否需要替换,如果是则利用Intent带的消息查询消息然后更新信息内容,调用的方法为replaceMessage()。否则直接将短信存储,调用的方法为storeMessage().

3.需要将得到的分段的信息内容组装在一起,设置一下Uri.将Message存储一下。

4.需要判断,当前Uri的会话是否存在,如果不存在则需要建立新的会话。

5.然后将短信放入会话框内,如果超出会话信息容量则删除最先收到的信息。

                   见下示例图:

                                     



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值