Android MMS发送流程详解(代码实现)

版权申诉
0 下载量 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时能够正确处理各种情况,包括合法性和有效性检查,以及异常情况的处理。