任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

谈谈Android中文短信的实现 Android开发技术

  似乎Google在推出G1时就没有考虑多国问题,Android在发送短信时在编码上处理不是很妥当,在收发一些unicode来实现的国家文字上存在很大的漏洞,比如中文、日文、俄文等等。对于分析短信发送可以直接dump出PDU Header来解决这个问题。两个G1手机只要在截取短信时,比如获取收到短信时判断PDU的原始内容,比较后就不难得出解决方法。  我们在构造时直接通过一个二进制的字节数组来发送UCS2即可,而英文使用7位的编码可以减少字节占用,在一条短信中发送更多的字符内容,稍后我们提供Android中文短信发送的所有源代码。   下面引用过去的分析内容:   发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。 A:短信息中心地址长度,2位十六进制数(1字节)。B:短信息中心号码类型,2位十六进制数。C:短信息中心号码,B+C的长度将由A中的数据决定。D:文件头字节,2位十六进制数。 E:信息类型,2位十六进制数。F:被叫号码长度,2位十六进制数。G:被叫号码类型,2位十六进制数,取值同B。H:被叫号码,长度由F中的数据决定。I:协议标识,2位十六进制数。J:数据编码方案,2位十六进制数。K:有效期,2位十六进制数。L:用户数据长度,2位十六进制数。M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。 PDU编码协议简单说明 例1 发送:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“Hello!”。从手机发出的PDU串可以是08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E […]

100% Secure Checkout

PayPal / MasterCard / Visa