
Android 短信发送流程深度解析
295KB |
更新于2024-08-31
| 148 浏览量 | 举报
收藏
"Android Mms之:短信发送流程(图文详解) - 分析Android系统中短信和彩信的发送步骤,包括WorkingMessage、SmsMessageSender等关键组件的作用,以及短信与彩信的区别处理方式。"
在Android系统中,Mms( Multimedia Messaging Service,多媒体信息服务)应用程序用于发送和接收包含文本、图片、音频或视频等内容的多媒体消息。本文将深入探讨Android Mms的短信发送流程,解析这一过程的关键步骤和技术细节。
首先,当用户在Mms应用中创建并决定发送一条消息时,信息会被存储到数据库中。用户可以选择放弃、保存为草稿或者发送这条信息。如果选择发送,UI界面并不会立即显示变化,而是会监听发送过程中的回调信息和数据库变化,以便适时更新用户界面。
信息发送的第一步是WorkingMessage的介入。WorkingMessage会处理消息内容,例如验证和整理收件人列表,确保所有收件人地址有效,并将附件转换为SendReq格式,以适应彩信发送的需求。根据消息类型的不同(短信或彩信),WorkingMessage会采用不同的处理策略。
对于短信,经过初步处理后,WorkingMessage会实例化SmsMessageSender,并调用其`sendMessage()`方法。SmsMessageSender接收的参数包括收件人地址、信息内容和对话ID。在SmsMessageSender内部,信息会被按照收件人拆分成多条单独的短信,因为一条短信只能发送给一个收件人。在调用`sendMessage()`之前,WorkingMessage会向UI发送一次回调,更新收件人和信息文本框的状态。
短信发送的执行者是Frameworks层的SmsManager。SmsManager负责实际的短信发送工作,它会根据指定的收件人地址和内容,通过底层的无线网络接口,如GSM或CDMA,将短信发送出去。
与短信不同,彩信的发送涉及Http协议。WorkingMessage在处理彩信时,会生成SendReq PDU,然后通过Http协议将其发送到MMS代理服务器,服务器再负责转发给收件人。这一过程涉及到更复杂的网络通信和数据编码解码。
总结来说,Android Mms的短信发送流程是一个涉及多个组件协同工作的复杂过程,包括UI层的事件监听、WorkingMessage的预处理、SmsMessageSender的拆分与发送,以及底层的SmsManager和网络通信机制。理解这一流程对于Android开发者优化Mms功能或实现自定义短信服务具有重要的参考价值。
相关推荐


















weixin_38736721
- 粉丝: 3
最新资源
- 屏幕录像机的实现与应用——JavaScript项目教程
- 机器学习:深入理解与应用
- Python实现的坦克模拟器TankSimulator详解
- Godwit博客:深入HTML与网页开发的世界
- 深入理解ES6技术特性及其在Rocketseat项目中的应用
- 探索p5.play在GCSO项目中的应用与实践
- p5.play中的物理引擎深入解析
- 掌握JavaScript操作Excel的jsExcel库使用指南
- JavaScript编程书单资源分享
- 条形码与二维码初探:PHP初学者指南
- GitHub项目自动化:一键制作存储库
- Q-Game:探索量子计算机原理的互动教学游戏
- 探索HTML领域的GitHub博客展示
- movieTime:实现带有抖动的电影API获取功能
- Java打造高效大学注册管理系统
- 营养食品的营养价值与健康益处
- Web编程数据库:揭露系统CS4项目解析
- Java领域西蒙MAD技术深度解析
- Python经济学时间序列分析与计算器开发指南
- 打造简易英俄翻译器:基于Jupyter Notebook的项目实践
- Oracle Java 8分配概览及重要更新
- Daniel Youree Lewis个人网站开发与HTML技术应用
- C#开发SodaMach制作苏打水
- 深入浅出内容管理系统(CMS)原理与实践