说说PPC上的彩信
近日研究彩信,有以下一些收获:
1.PPC手机上的彩信发送和接收是由彩信客户端实现的,而彩信客户端是由各个手机厂家自己根据中国移动的规范实现的.因此,各个厂家的客户端优劣不一,功能不一,有的强大一些,有的则很烂.一款价格普通的手机,彩信客户端可能做的很不错,而一款昂贵的"旗舰机",却有着很烂的彩信客户端.例如,移动规范上规定:彩信终端必须支持手动播放彩信. 而三星i908E却不支持. 而且图片也没有按照smil文件的规定进行正确的缩放, 造成大大的屏幕中间显示一个很小幅的图片. 相反, Dopod系列的手机彩信客户端个人认为相当不错, 不论是手动,自动播放控制, 还是图片的缩放显示效果上,都比较完美.
2.由于彩信客户端是一个"第三方"软件,因此,在手机的注册表里设定了彩信的路由位置,例如: HK_LOCAL_MACHINE\SECURITY\PUSHROUTER,
指明客户端程序位于\windows\MMSListener.exe
3.彩信的存储分为两部分,一部分是主题,和短信SMS一起保存在系统中,需要通过MAPI才能读取. 另一部分是彩信内容,不同的客户端导致保存的文件格式和位置都不一样.以Dopod为例, 彩信内容是一个个的后缀为.dat的文件, 例如 31088.dat, 一般保存在My Document\UAContent\下面, 或者
My Document\UA Content\MMS UA\ 下面.
4.彩信内容文件找到了, 但是这个文件是如何组织的呢? 经过分析发现, 彩信内容是使用SMIL(Synchronized multimedia Integration Language)语言来组织的. 彩信的结构包括MMS Header 和 MMS Body 两大部分.
MMS Body又包括presentation, image/jpeg, text, audio, video ,各个媒体部分.
presentation部分,其实就是一段xml语句, 定义了本彩信中各个媒体段的名称,类型,显示方式,用来提供给彩信客户端以便提取对应的数据并且按照要求进行显示.说白了就是显示规则的描述.这部分可以在文件头,也可以在文件尾. 但一般好像没有看到在中间的.
其他各个媒体部分一般按顺序(也是最后用户看到的播放顺序)将自己以16进制形式排列在文件中.
presentation部分示例: