手机接收短信后,Android(Android 2.2.1 From CyanogenMod For G6)在LogCat中会这样一个输出:
12-17 16:24:16.425: DEBUG/WAP PUSH(230): Rx: ae06246170706c69636174696f6e2f766e642e7761702e6d6d732d6d65737361676500b487af84[data:8c82985251594278686467766b2b41008d9083687474703a2f2f3231312e3133362e3232312e37352f5251594278686467766b2b41008805810302a300891780]3133353935373330313133[tag1:2f545950453d504c4d4e00]8a808e020d0c
注:“[data:]”"[tag1]"是人为加上去的。
Android中的MMS工具类都被"@hide"了,但还是可以注册BroadcastReceiver来接收到:"[data]"中的数据。
从Intent中获取到MMS的二进制数据的。获取方法为:
byte[]data = intent.getByteArrayExtra("data");
解析详情如下:
ae 06 246170706c69 63617469 6f6e2f 766e642e7761702e6d6d732d6d65737361676500 b4 87 af 84
ae:Transaction ID/PUSH ID(有一不明,该处Transaction ID与data中数据的Transaction ID有何不同吗?)
06:类型,说明PDU的类型和功能,Push消息的编码为0x06。
24:长度,即往后36字节,至af84结束(与文档有出入,文档中描述为22即34字节,不包含af84)。
6170706c696f6e2f766e642e7761702e6d6d732d6d65737361676500:applicon/vnd.wap.mms-message(此处少了表示"ati"三字符的三字节,未明原因,正常的字节码顺序应是:6170706C69636174696F6E2F766E642E7761702E6D6D732D6D65737361676500,"application/vnd.wap.mms-message")
b487:此处反而多出了两字节,Sodino不明其意,盼指教。
af:头部信息“X-Wap-Application-Id”的WSP压缩编码。
84:X-Wap-Application-Id的值,表示“x-wap-application:mms.ua”。
data:
[8c 82 98 5251594278686467766b2b4100 8d 90 83
687474703a2f2f3231312e3133362e3232312e37352f5251594278686467766b2b4100
88 05810302a300
891780]
8c:X-Mms-Message-Type
82:MESSAGE_TYPE_NOTIFICATION_IND(参考自mmssms.db/pdu "ct_l" 赋值为130即十六进制的0x82 及 AOSP com\google\android\mms\pdu\PduHeader)
98:X-Mms-Transaction-ID
5251594278686467766b2b4100:RQYBxhdgvk+A (tr_id,即Transaction-ID 参考自mmssms.db/pdu)
8d:X-Mms-Version
90:MMS Version值为1.0(来自网文,参考mmssms.db/pdu "v"值为16即((1 << 4) | 0),该值的名称为:MMS_VERSION_1_0)
83:CONTENT_LOCATION(参考自mmssms.db/pdu "ct_l"及AOSP com\google\android\mms\pdu\PduHeader)
687474703a2f2f3231312e3133362e3232312e37352f5251594278686467766b2b4100:http://211.136.221.75/RQYBxhdgvk+A(00:空字符)
88:EXPIRY
05:值的长度,即5字节
81:表示后面的时间采用“相对时间格式”
03:表示时间值为3个字节
02a300:172800秒,即48小时的有效期,与“信息”应用的提示相符。
89:FROM
17:"FROM"的长度,即23字节
80:FROM_ADDRESS_PRESENT_TOKEN,第1个字节
3133353935373330313133:13595730113,第2~12个字节
2f545950453d504c4d4e00:/TYPE=PLMN<00> (<00>表示未有明显的意义,保留原样),第13~23个字节
8a:MESSAGE_CLASS
80:MESSAGE_CLASS_PERSONAL(参考自:mmssms.db/pdu "m_cls"值为personal)
8e:MESSAGE_SIZE
02:往后读两字节
0d0c:(一个long转化为byte[]后保留的最简形式,真实值应为3340)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sodino/archive/2010/12/19/6084697.aspx
分享到:
相关推荐
为了节约无线领域的带宽资源,表中分配数值即为每个域名关键字使用预定义的二进制编码,MMS PDU封装的二进制编码的基本编码机制来源于WAP/WSP,最优化在空中传播的数据量。MMS PDU生成及翻译是MMS客户机程序的重要...
基于VisualC_的MMSPDU编解码系统设计.kdh基于VisualC_的MMSPDU编解码系统设计.kdh
### 基于VisualC++的MMSPDU编解码系统设计 #### 摘要与背景 在电力系统及工业自动化领域,制造报文规范(MMS)扮演着核心角色,作为OSI模型应用层协议,MMS支持实时数据交换和监控信息传输。其消息格式由抽象语法...
【描述】中的关键词" MMS PDU编码"指的是MMS消息的协议数据单元(Protocol Data Unit)编码方式。PDU编码是SMPP(Short Message Peer-to-Peer)协议的一部分,用于表示SMS和MMS消息的数据格式。在MMS中,PDU编码用于...
PDU(Protocol Data Unit)是MMS协议中的一个重要概念,它是MMS消息在网络上传输的基本单位。本文将详细解析Android Mms中PDU的使用。 PDU是MMS协议中的一种数据表示形式,它包含了MMS消息的所有信息,如头信息、...
### MMS Notification PDU 解析 #### 彩信通知PDU简介 彩信通知PDU是一种特殊的指示消息,由彩信中心向手机发起的通知指示消息(m-notification-ind),通常通过短信下发的方式进行传递(即WAP over SMS方式)。这...
1. MMS PDU(Protocol Data Unit,协议数据单元):这是MMS消息的核心结构,它承载了MMS的所有信息。MMS PDU在传输过程中作为WSP(Wireless Session Protocol,无线会话协议)的消息体,确保数据在无线网络上的安全...
- **MMS PDU**: MMS协议数据单元(PDU)是MMS通信的基本单位。每个PDU包含一个或多个服务请求或响应。 - **确认服务PDU**: 确认服务PDU用于确认接收方已经接收到发送方的消息。这类PDU通常包含一个状态码,用于指示...
PDU(Protocol Data Unit)是MMS协议中的一个重要概念,它是MMS消息在网络中传输的数据格式。本主题将深入探讨“MMS彩信PDU打包代码”,以及如何在VC++环境下实现包含图片和文本的MMS消息打包。 首先,我们需要了解...
MMS的通信主要通过MMS PDU(Protocol Data Units,协议数据单元)来完成。MMS PDU由MMS头部和消息体两部分组成。其中,MMS头部包含了PDU的特定信息,而消息体则是可选的。通常情况下,大多数通信过程中没有MMS消息体...
MMSC 测试平台的建立和 MMS PDU 的二进制数据解析 MMSC(彩信中心)测试平台的建立是为了对 MMSC 系统进行测试,以验证其基本功能和兼容性。该测试平台需要模拟手机终端和 MMSC 之间的信令交互,以便测试 MMSC 对...
在MMS通信中,主要传输的单位是MMS PDU(Protocol Data Units),由MMS头部和可选的消息体组成。MMS头部详细描述了PDU的特性信息,而消息体仅在特定情况下出现,例如在M2Send.req和M2Retrieve.conf原语中。MMS PDU...
5. **PduLoader**: 这个类主要负责解析和构建MMS pdu(Protocol Data Unit),它是MMS协议中的数据传输单元。 6. **ContentProvider**: Android的ContentProvider是数据共享的关键组件,Mms源码中包含的MmsProvider...
Android MMS服务基于PDU(Protocol Data Unit)协议,该协议是WAP(Wireless Application Protocol)的一部分,用于在移动设备间传输MMS。MMS服务通常包括以下组件: 1. **MmsService**: 这是MMS服务的主要实现,...
2. **构建MMSPDU**:MMSPDU(Multimedia Message Service Protocol Data Unit)是MMS消息的实际传输单元。文档解释了如何构建这些数据单元以及它们的组成部分。 #### 六、可用工具 文档还列举了一些有助于开发和...
MMS ASN.1示例编码有助于解释如何编码和解释MMS PDUs,这些PDU是MMS通信的基本单元。例如,在上下文管理中,有初始化(Initiate)、初始化响应(Initiate-Response)、终止(Conclude)、终止响应(Conclude-...
彩信的PDU定义了一系列常用的消息域,这些域包括但不限于:X-Mms-Message-Type(消息类型)、X-Mms-Transaction-ID(事务ID)、X-Mms-MMS-Version(彩信版本)等。这些消息域可以是公有的,供所有消息使用,也可以是...
MMS PDU由MMS头和消息体组成。MMS头具体的描述了PDU的特定信息,消息体是可选的 本文介绍了SMS,EMS,MMS在传输内容、传输机制上的区别。深入讨论了 MMS协议的消息格式,压缩编码技术。最后指出当前各主要手机生产...