Android MMS发送流程详解(代码实现)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
"MMS发送流程在Android系统中的实现主要集中在`com.android.mms.ui.ComposeMessageActivity.java`这个类中,涉及到了用户界面交互、彩信判断及发送逻辑。以下是具体的步骤解析: 1. **点击发送按钮** 当用户在MMS应用中点击发送按钮时,该操作在`ComponseMessageActivity`的`onClick`方法中被处理。这里有一个条件判断,只有当发送按钮被点击并且消息已经准备好发送时,才会触发后续的发送流程。 2. **确认是否需要发送** 在`confirmSendMessageIfNeeded`方法中,首先判断当前编辑的联系人是否可见。如果不可见,说明是在一个已有会话的联系人上发送,此时直接调用`sendMessage(true)`进行发送。如果编辑联系人可见,那么会进一步判断消息是否需要以MMS(多媒体消息)的形式发送。 3. **判断是否需要以MMS形式发送** `mWorkingMessage.requiresMms()`方法用于检查当前消息是否包含非文本内容,如图片、音频等,如果包含则需要通过MMS协议发送。 4. **检查收件人有效性** 对于收件人,`mRecipientsEditor.hasInvalidRecipient(isMms)`会检查所有收件人是否都符合发送要求。如果有不合法的收件人,系统会进一步判断是否还有合法的收件人。如果有合法收件人,系统会弹出对话框让用户选择是否尝试发送;如果所有收件人都不合法,则直接结束发送过程。 5. **处理非法收件人** 当存在合法与不合法收件人混合的情况时,系统会创建一个警告对话框,提示用户收件人中存在无效号码,并提供“尝试发送”和“取消”两个选项。`SendIgnoreInvalidRecipientListener`和`CancelSendingListener`是对应的监听器,分别处理用户点击“尝试发送”和“取消”的操作。 6. **实际发送过程** 在用户确认或自动处理了非法收件人后,`sendMessage`方法会被调用。这个方法包含了真正的发送逻辑,它会与系统服务交互,将消息通过网络发送出去。发送过程中可能涉及到的数据准备、连接建立、数据编码和解码、错误处理等多个环节。 7. **MMS协议** MMS消息的发送基于WAP Push协议,它允许通过GPRS、EDGE、3G、4G等移动网络传递多媒体内容。在Android系统中,MMS服务通常由`MmsService`或`MessagingService`等组件负责,它们会与网络运营商的MMSC( Multimedia Messaging Service Center)进行通信,完成消息的上传和分发。 8. **错误处理和反馈** 在整个发送过程中,Android系统会捕获并处理可能出现的各种异常,如网络问题、服务器响应错误等,并通过通知或者对话框的形式向用户反馈发送状态。 9. **优化和性能** 为了提高用户体验,Android系统还可能对发送流程进行优化,比如批量发送、后台发送、网络状况检测等,以减少用户等待时间并降低功耗。 Android系统中的MMS发送流程是一个涉及用户交互、数据验证、协议通信等多个层面的复杂过程,其核心在于正确地组织和发送包含多媒体内容的消息。在实际开发中,开发者需要关注各个细节,确保消息能够正确、高效地发送到目标设备。
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/7d7ce8b5cee445eab95775f4ce7b3b13_qq_53178901.jpg!1)
- 粉丝: 1
- 资源: 1581
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)