短信来了之后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
分享到:
相关推荐
6. **源码分析**:压缩包中的"MMS"可能是实现MMS功能的Java源代码,包含类、方法和逻辑。通过对这些源码的学习,开发者可以深入理解MMS的实现细节,包括如何创建和解析MMS消息、如何与服务器交互以及如何在UI上展示...
在这个名为`platform_packages_apps_mms-master`的压缩包文件中,包含了完整的MMS应用源代码,我们可以从中学习到Android系统如何处理短信和彩信的发送、接收、存储以及管理。 1. **MMS架构** Android MMS服务基于...
TextMessenger的源代码可能包含XML布局文件,定义了用户界面的布局和样式;Java或Kotlin类文件,实现了业务逻辑和事件处理;以及资源文件,如图片、字符串资源等。 在TextMessenger中,核心功能可能包括消息的创建...
本主题主要围绕“android-MMS-Analysis”展开,深入探讨Android彩信的收发流程以及相关的源代码分析。 1. **MMS架构与组件** Android系统的MMS服务主要由以下组件构成: - `MMSC`: MMS Client,负责与MMS服务器...
3. SMS/MMS整合:KitKat统一了短信和彩信的处理,使得第三方应用可以更好地与系统集成。 4. Print框架:增强了打印功能,支持云打印和本地网络打印机。 5. 媒体框架改进:提升了音频和视频播放的稳定性和效率。 6. ...
在`My_Mms`压缩包中,包含了Android MMS模块的源代码。通过阅读这些源码,我们可以深入理解以下关键点: 1. `MmsService.java`: 实现MMS服务的核心类,包含消息发送和接收的逻辑。 2. `MmsApp.java`: 主要应用入口,...
在安卓操作系统的世界里,源代码是开发者探索系统内部工作原理、优化应用性能以及定制个性化系统的钥匙。本文将深入剖析Android源码中的Mms模块,揭示其在短信和彩信服务中的核心功能与实现细节。 Mms,全称为...
7. **移植与扩展**:由于是开源的,GreekSMSWriter有可能被移植到其他平台,如Android或iOS,或者被扩展以支持更多功能,如群发短信、彩信(MMS)功能、联系人管理等。 通过这些技术知识点,我们可以看到...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...