`
zhanglfat
  • 浏览: 91458 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android_Mms源代码接受短信流程

 
阅读更多
短信来了之后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
分享到:
评论

相关推荐

    MMS.zip_MMS android_android mms_site:www.pudn.com_短信 android

    6. **源码分析**:压缩包中的"MMS"可能是实现MMS功能的Java源代码,包含类、方法和逻辑。通过对这些源码的学习,开发者可以深入理解MMS的实现细节,包括如何创建和解析MMS消息、如何与服务器交互以及如何在UI上展示...

    android 短信源码

    在这个名为`platform_packages_apps_mms-master`的压缩包文件中,包含了完整的MMS应用源代码,我们可以从中学习到Android系统如何处理短信和彩信的发送、接收、存储以及管理。 1. **MMS架构** Android MMS服务基于...

    TextMessenger_androidapp_android_

    TextMessenger的源代码可能包含XML布局文件,定义了用户界面的布局和样式;Java或Kotlin类文件,实现了业务逻辑和事件处理;以及资源文件,如图片、字符串资源等。 在TextMessenger中,核心功能可能包括消息的创建...

    android-MMS-Analysis

    本主题主要围绕“android-MMS-Analysis”展开,深入探讨Android彩信的收发流程以及相关的源代码分析。 1. **MMS架构与组件** Android系统的MMS服务主要由以下组件构成: - `MMSC`: MMS Client,负责与MMS服务器...

    android4.4源码 android-19源代码

    3. SMS/MMS整合:KitKat统一了短信和彩信的处理,使得第三方应用可以更好地与系统集成。 4. Print框架:增强了打印功能,支持云打印和本地网络打印机。 5. 媒体框架改进:提升了音频和视频播放的稳定性和效率。 6. ...

    android mms模块

    在`My_Mms`压缩包中,包含了Android MMS模块的源代码。通过阅读这些源码,我们可以深入理解以下关键点: 1. `MmsService.java`: 实现MMS服务的核心类,包含消息发送和接收的逻辑。 2. `MmsApp.java`: 主要应用入口,...

    安卓Android源码——Mms.rar

    在安卓操作系统的世界里,源代码是开发者探索系统内部工作原理、优化应用性能以及定制个性化系统的钥匙。本文将深入剖析Android源码中的Mms模块,揭示其在短信和彩信服务中的核心功能与实现细节。 Mms,全称为...

    JAVA上百实例源码以及开源项目源代码

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

    GreekSMSWriter-开源

    7. **移植与扩展**:由于是开源的,GreekSMSWriter有可能被移植到其他平台,如Android或iOS,或者被扩展以支持更多功能,如群发短信、彩信(MMS)功能、联系人管理等。 通过这些技术知识点,我们可以看到...

    java开源包8

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包10

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包1

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包11

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包2

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包3

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包6

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包5

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包4

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包7

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包9

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

Global site tag (gtag.js) - Google Analytics