android 信息(mms)开发(四) -- sms解码的实例

        这是独立的一节,关于短信sms解码的一些实际例子,包括收到的短信、发送的短信和短信的状态,网络上的例子比较分散,整理在此以备查找。同时关于短信编解码的官方文档当然是 3gpp的相关文档了,关于短信请参考3gpp 23.040这个文档。


1. ---有短信中心号发送
0891683108705505F0040d91685111975441f9000011707261410523054674be5e07
08    长度  91---5F结束 8对
91    国际号码
683108705505F0 短信中心      ---这里是短信中心的地址  如以00开头,表示没有短信中心
04    pduType                          ---虽然只有一个字节,却包括了应答路径、用户头数据,状态报告、有效期、消息类型等信息
0d
91
685111975441f9  号码            ---和短信中心的解释一样,只不过这里 0d长度去指68---f9的数字个数,最后一个F是占位用的
00    协议标识
00    编码方案 7bit
11707261410523 年月日时分秒时区   --每两个颠倒后就是 11年07月27号16点14分50秒 32是时区
05             数据长度                   --- 这个短信正文的长度
4674be5e07                             ---  正文,解码就知道是什么了 


2. ---无短信中心的
00   无短信中心号
01   pduType 发送
00   通常为00 
0b
81
5111975441f9
00
00
02
c532


3. ---长短信的,已经大致上分好了,和普通短信的区别不大
00
41
00
0b818126300532f6
00
00
a0
050003e10201  注意这里  05是长度 从00---01结束 00表示多包 03后面的长度 e1是ID  02表示一共有几段 01表示当前是第几段
8c
e7b34da552dd743a95ce54
abd568349bcd66abd540349acd66b3d5
6a20e3f96c53a954379d4ea533d56a35
1acd66b3d96a35108d66b3d96cb51ac8


00
41
00
0b818126300532f6
00
00
80
050003e10202  --最后一个02表明这是第二段  
68369bcd56ab8168349bcd66
abd540c6f3d9a652a96e3a9d4a67aad5
6a349acd66b3d56a201acd66b3d96a35
90f17cb6a954aa9b4ea7d2996ab51a8d


4-- 接收的,一个例子而已,没有新东西
08
91
683108200005F0
04
0c
a1
0156087011200018
11707261611423
8c
0032003765e500310036003a0031003681f40031003500310031003800310036003400310034003977ed4fe19001
8fbe3002000a9999854953ef7f1389e3773c775b75b252b3ff1a7ecf5e3897625bf975358111ff0c6bcf592953ef54030
031002d0032683999998549ff0c53ef4fdd8bc14f53518594be94a05e738861ff0c7f1389e3773c775b4e0d9002


5--短信的状态报告 这个不是很常用,而且解码规则也有点变化,写下说明一下
第一个:
0006080D91683158136777F7602070416530006020704165300000
00                  表示无短信中心号;
06  (00000110)    表示这是一个状态报告;
08                 与AT发送时状态相对应 
0D91683158136777F7 接收方的手机号, 这个好像不是中国内地的号码, 
60207041653000   短信中心收到消息的时间;
60207041653000   短信中心处理消息的时间;
00 发送短信的状态,00表示成功;


第二个:
07915862339420F4060108811630424511604111222523116041113250230000 
07  (长度) 从91开始至F4  :915862339420F4
其它的和第一个例子解释相同
06
01
088116304245  (08是长度, 81与91的含义类似  16304245 这里不算81的长度 要特别注意。 实际号码61032454  )
11604111222523
11604111325023
0000      
 

猜你喜欢

转载自blog.csdn.net/qq_35427437/article/details/95359442