Android MMS发送流程详解(代码实现)
版权申诉
162 浏览量
更新于2024-07-08
收藏 32KB PDF 举报
"MMS发送流程(代码版)——Android 2.2 packages/apps/Mms"
在Android系统中,MMS(Multimedia Messaging Service,多媒体信息服务)主要用于发送包含文本、图片、音频等多媒体内容的短信。以下是MMS发送流程的详细步骤,基于Android 2.2版本的Mms应用包:
1. **触发发送**
当用户点击发送按钮时,这个动作在`src/com/android/mms/ui/ComposeMessageActivity.java`中的`onClick()`方法中被处理。如果点击的是`mSendButton`并且消息已经准备好发送,`confirmSendMessageIfNeeded()`方法会被调用。这一部分确保只有当用户完成编辑并准备发送时,才会继续后续的发送流程。
2. **确认发送**
`confirmSendMessageIfNeeded()`方法首先检查收件人编辑器是否可见。如果编辑器不可见,这意味着用户是在一个已存在的会话中发送消息,因此直接调用`sendMessage(true)`进行发送。反之,如果编辑器可见,那么将进入更复杂的验证步骤。
3. **判断是否发送MMS**
这个流程会通过`mWorkingMessage.requiresMms()`来判断当前消息是否需要以MMS的形式发送。如果消息包含多媒体内容或者超过了短信的字符限制,它将被作为MMS发送。
4. **验证收件人**
接下来,`mRecipientsEditor.hasInvalidRecipient(isMms)`检查收件人列表中是否存在无效的收件人。如果存在无效收件人,但同时也有合法的收件人,系统会弹出一个对话框询问用户是否尝试发送。对话框的构建包括设置图标、标题、消息内容以及两个按钮:一个是尝试发送(`R.string.try_to_send`),另一个是取消发送(`R.string.no`)。
5. **对话框事件处理**
对话框的确定按钮关联了一个`SendIgnoreInvalidRecipientListener`监听器,当用户选择“尝试发送”时,此监听器会被触发,允许发送包含无效收件人的消息。而取消按钮关联了`NewCancelSendingListener`,当用户选择“不”时,发送操作将被取消。
6. **实际发送**
如果用户确认发送,`sendMessage(true)`将被调用,这个方法将处理MMS的实际发送过程。它可能包括创建PDU(Protocol Data Unit,协议数据单元)、连接到MMSC(Multimedia Messaging Service Center,多媒体消息服务中心)、上传多媒体内容、等待发送确认等一系列步骤。
7. **错误处理与反馈**
在发送过程中,如果出现错误,系统会提供相应的错误提示或重试机制,确保用户能够了解发送状态并有机会处理问题。
以上就是Android 2.2 MMS发送流程的代码实现概述,这个流程确保了用户在发送MMS时能够正确处理各种情况,包括合法性和有效性检查,以及异常情况的处理。
2021-10-02 上传
2021-11-05 上传
2021-09-21 上传
2022-07-10 上传
2021-09-21 上传
2021-10-19 上传
2015-09-11 上传
1120 浏览量
2024-11-17 上传
shuan715
- 粉丝: 0
- 资源: 5万+
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案