Android 短信发送流程深度解析
24 浏览量
更新于2024-08-31
收藏 295KB PDF 举报
"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功能或实现自定义短信服务具有重要的参考价值。
2023-01-13 上传
2020-09-05 上传
2021-01-04 上传
2020-09-05 上传
2020-09-05 上传
2020-09-05 上传
2020-09-05 上传
2020-09-05 上传
点击了解资源详情
weixin_38736721
- 粉丝: 3
- 资源: 930
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库