当前位置:编程学习 > wap >>

紧急求救:如何解析cdma长消息或彩信通知?

接收彩信通知失败,查看信令,收到两条sms消息
具体分析如下:
第一条:
0x0,0x3,0x12,0xe,0x30,0x3,0x6,0x9,0x11,0x17,0x9,0x49,0x0,0x1,0x8e,0x4          
,0x60,0x0,0x18,0x80,0x7a,0x0,0xc,0x28,0x20,0xc0,0x0,0x80,0x8,0xfc,0x2,0xe1      
,0x3c,0xc1,0x89,0x18,0x5c,0x1c,0x1b,0x1a,0x58,0xd8,0x5d,0x1a,0x5b,0xdb,0x8b,0xdd
,0x9b,0x99,0xb,0x9d,0xd8,0x5c,0xb,0x9b,0x5b,0x5c,0xcb,0x5b,0x59,0x5c,0xdc,0xd8  
,0x59,0xd9,0x40,0x2d,0x21,0xeb,0xe1,0x23,0x20,0xa6,0x14,0x92,0x9d,0xdd,0x1c,0xd 
,0xdd,0x16,0x5d,0xcd,0x94,0xd0,0x40,0x23,0x64,0x20,0xda,0x1d,0x1d,0x1c,0xe,0x8b 
,0xcb,0xcc,0x4c,0xb,0x8c,0x8c,0xcd,0xb,0x8e,0x4c,0x8b,0x8c,0x4e,0x8e,0xc,0xe    
,0xc,0xb,0xdd,0xd8,0x5c,0xcb,0xd4,0x92,0x9d,0xdd,0x1c,0xd,0xdd,0x16,0x5d,0xcd   
,0x94,0xd0,0x40,0x22,0x1,0x60,0x40,0xc0,0xa8,0xba,0xe2,0x43,0x60,0xc,0x4e,0xe   
,0x4d,0x8d,0x4c,0x4d,0x8c,0xce,0x4c,0x8c,0x40,0x22,0xa0,0x23,0x80               

第二条:
0x0,0x3,0x12,0xe,0x40,0x3,0x6,0x9,0x11,0x17,0x9,0x49,0x0,0x1,0x11,0x0 

针对第一条解码以后,user_data为:
0x0,0x3,0x10,0xf,0x40,0x1,0x85,0x4,0x18,0x0,0x10,0x1,0x1f,0x80,0x5c,0x27       
0x98,0x31,0x23,0xb,0x83,0x83,0x63,0x4b,0x1b,0xb,0xa3,0x4b,0x7b,0x71,0x7b,0xb3  
0x73,0x21,0x73,0xbb,0xb,0x81,0x73,0x6b,0x6b,0x99,0x6b,0x6b,0x2b,0x9b,0x9b,0xb  
0x3b,0x28,0x5,0xa4,0x3d,0x7c,0x24,0x64,0x14,0xc2,0x92,0x53,0xbb,0xa3,0x81,0xbb 
0xa2,0xcb,0xb9,0xb2,0x9a,0x8,0x4,0x6c,0x84,0x1b,0x43,0xa3,0xa3,0x81,0xd1,0x79  
0x79,0x89,0x81,0x71,0x91,0x99,0xa1,0x71,0xc9,0x91,0x71,0x89,0xd1,0xc1,0x81,0xc1
0x81,0x7b,0xbb,0xb,0x99,0x7a,0x92,0x53,0xbb,0xa3,0x81,0xbb,0xa2,0xcb,0xb9,0xb2 
0x9a,0x8,0x4,0x40,0x2c,0x8,0x18,0x15,0x17,0x5c,0x48,0x6c,0x1,0x89,0xc1,0xc9    
0xb1,0xa9,0x89,0xb1,0x99,0xc9,0x91,0x88,0x4,0x54,0x4,0x70                 

根据协议,读取CHARi偏移一个字节为TOTAL_SEGMENTS,偏移2个字节为SEGMENT_NUMBER
这样,读取出来的TOTAL_SEGMENTS为3,SEGMENT_NUMBER为16

事实上只有2条消息,TOTAL_SEGMENTS应为2,SEGMENT_NUMBER为0(第二条应为1)
是不是获取的这两条消息没有遵循协议,还是我对协议理解有误? --------------------编程问答-------------------- 感觉好像理解出现了问题 --------------------编程问答-------------------- 偏移的理解 --------------------编程问答--------------------
我自己一直对照协议,不知道自己协议哪里理解不对了
可以说的详细些吗,谢谢! --------------------编程问答-------------------- --------------------编程问答-------------------- 0x0,0x3,0x10,0xf,0x40,0x1,0x85

0x1为条数一条
0x85后面数据长度133 --------------------编程问答-------------------- 看电信spec,里面有详细说明。另外华为的mms push是两个包。中兴是一个包 --------------------编程问答-------------------- 两条跟一条,完全一样啊? --------------------编程问答-------------------- 0x0,0x3,0x12,0xe,0x30,  WDP Msg Indetifier
0x3,0x6,0x9,0x11,0x17,0x9,0x49,0x0,  Message Center Time Stamp
0x1,0x8e,0x4,0x60,0x0,0x18,0x80,... WDP User Data
0x1, SUBPARAMETER_ID 
0x8e, SUBPARAM_LEN=142
0x4 =0000 0100 MESSAGE_ENCODING=0000 0=0x00
0x60=0110 0000 NUM_FIELDS =100 0110 0=0x8c=140
0x0 =0000 0000 CHARi-MSG_TYPE =000 0000 0=0x00
0x18=0001 1000 TOTAL_SEGMENTS =000 0001 1=0x03
0x80=1000 0000 SEGMENT_NUMBER =000 1000 0=0x10
我的解析,也跟你完全相同,汗! --------------------编程问答-------------------- 偏移量的问题,,好好再看看,呵 --------------------编程问答-------------------- 关注相关内容
补充:移动开发 ,  Brew
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,