Android_Mms源代码接受短信流程
2012-08-29 21:17
357 查看
短信来了之后framework会发送广播 “android.provider.Telephony.SMS_RECEIVED”
---------------------------------------PrivilegedSmsReceiver---------------------
此时,PrivilegedSmsReceiver会接受到该广播,调用父类SmsReceiver的onReceiveWithPrivilege()方法
此方法内获取一个wake lock 然后启动SmsReceiverService服务
---------------------------------------SmsReceiverService------------------------
启动该服务后,会调用onStartCommand方法,该方法以之前传来的Intent为Message的Obj发送一条Message
在handleMessage方法里面通过Intent判断后执行相应的操作,如handleSmsSent,handleSmsReceived,
handleBootCompleted,handleServiceStateChanged
接受到短信时当然执行handleSmsReceived方法
该方法内通过Intents.getMessagesFromIntent(intent)方法从Intent里面取出Message[]
然后通过insertMessage(this, msgs)方法插入短信insertMessage里通过调用storeMessage方法
storeMessage方法执行values.put(Inbox.BODY, sms.getDisplayMessageBody())方法就可以将
短信以ContentValues的形式插入数据库。
insertMessage方法如果插入成功将会返回插入短信的Uri,如果此Uri不为Null,说明已经插入数据库,于是
执行MessagingNotification.updateNewMessageIndicator(this, true);
该方法则会根据短信的状态,发出提示音或震动,也可以根据设置notification
自此,一条新信息就成功接受了。
短信的所有提示都是通过Notification来提示的,所以当从设置里面把Notification的震动关闭,设为静音的话,
无所短信设置里面怎么设置提示方式都没用。因为短信提示就是一个普通的Notification
---------------------------------------PrivilegedSmsReceiver---------------------
此时,PrivilegedSmsReceiver会接受到该广播,调用父类SmsReceiver的onReceiveWithPrivilege()方法
此方法内获取一个wake lock 然后启动SmsReceiverService服务
---------------------------------------SmsReceiverService------------------------
启动该服务后,会调用onStartCommand方法,该方法以之前传来的Intent为Message的Obj发送一条Message
在handleMessage方法里面通过Intent判断后执行相应的操作,如handleSmsSent,handleSmsReceived,
handleBootCompleted,handleServiceStateChanged
接受到短信时当然执行handleSmsReceived方法
该方法内通过Intents.getMessagesFromIntent(intent)方法从Intent里面取出Message[]
然后通过insertMessage(this, msgs)方法插入短信insertMessage里通过调用storeMessage方法
storeMessage方法执行values.put(Inbox.BODY, sms.getDisplayMessageBody())方法就可以将
短信以ContentValues的形式插入数据库。
insertMessage方法如果插入成功将会返回插入短信的Uri,如果此Uri不为Null,说明已经插入数据库,于是
执行MessagingNotification.updateNewMessageIndicator(this, true);
该方法则会根据短信的状态,发出提示音或震动,也可以根据设置notification
自此,一条新信息就成功接受了。
短信的所有提示都是通过Notification来提示的,所以当从设置里面把Notification的震动关闭,设为静音的话,
无所短信设置里面怎么设置提示方式都没用。因为短信提示就是一个普通的Notification
相关文章推荐
- Android_Mms源代码接受短信流程
- Android_Mms源代码接受短信流程
- Android短信Mms接受流程
- Android Mms之:短信发送流程(图文详解)
- 深度解析:Android在Mms设置页面更改短信中心号码流程
- Android Mms之:短信发送流程(图文详解)
- Android Mms之短信接收流程--从Framework到App
- android中Mms学习笔记——短信(sms)接收流程(三)
- 深度分析:Android中Mms设置页面更改短信中心号码流程
- Android Mms之短信接收流程--从Framework到App
- Android入门-MMS-短信/彩信发送流程+代码分析
- Android短信Mms发送流程
- Android Mms短信的发送流程,短信发送源码解析
- android中Mms学习笔记——短信(sms)发送流程(二)
- 深度分析:Android中Mms设置页面更改短信中心号码流程
- 深度分析:Android中Mms设置页面更改短信中心号码流程
- Android Mms之:短信发送流程(图文详解)
- 高通android 7.0短信发送流程
- Android 2.3发短信详细流程
- Android Mms专题之:信息发送流程