基于RxTx的短信发送-长短信pdu

    众所周知,可能有些人未必知道,pdu发送短信是有字数限制的,信息体长度不超过140字节,如果采用uni编码一个字需要两个字节算的话正好70个字,这就是为什么以前的手机每条短信只能发送差不多70个字,那为什么现在就可以发送很长的短信呢?原因是现在设备都支持长短信(pdu分包)的协议,即像http包一样拆分发送到达以后组装成一个完整的请求返回。好了废话不多说了下面介绍拆分pdu的协议,知道了协议编写长短信发送的代码就是小case。

    

    发送协议介绍

SCA(Service Center Address) PDU-Type MR(Message Reference) DA(Dest Address) PID DCS(Data Config Schema) VP(Validity Period) UDL(User Data Length) UD(User Data)
1 byte 1byte 2byte 8byte 1byte 1byte 1byte 1byte ...

 

 

 

 

 

   

 

   SCA:短信中心号,如果设置00表示使用SIM卡中的默认短信中心号,还可以设置其他短信中心号这种情况不至1byte

   MR: 一般为00

   DA:发送的目标号

   DCS:数据编码方式,08ucs2用于汉字(汉子不是妹子),00是7bit编码英文编码,04是8bit编码用于图片

   VP:有效期一般FF

   UDL:指UD的字节数

   Pdu-Type:51有报头的短信,11普通短信   

 

   PDU-Type 类型说明

bit 发送 接收 说明
7 RP RP

0:不带恢复地址

1:带恢复地址

6 UDHI UDHI

0:UD只是短信内容

1:UD开头是用户报头

5 SRR SRI

0:不反馈报告

1:需要反馈

4,3 VPF VPF 设置VP格式一般为10表示相对格式VP占1byte
2 RD MMS

0:普通短信

1:长短信

1,0 MTI MYI 01:发送,00:接收

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

UD中除了短信内容还有UDHeader

    UDHeader说明

1 UDHL 05:协议头长度
2 information element identifier 00:用一个字节进行编号的长短信
3 length of sub-header 03:信息单元头长
4 reference number 参考号  区别不同短信的唯一标示
5 number of short msg  拆分后总条数
6  sequence number of ther current   拆分后第几条

 

你可能感兴趣的:(sms,rxtx)