在Android中编码SMS消息

时间:2010-04-22 21:06:19

标签: android character-encoding sms pdu

我的问题是我想发送某个类的SMS消息并使用某种编码。 (0和7位编码)。

检查Android.Telephony.SmsManager和SmsMessage时,你可以做的事情并不多。 SmsManager提供两个功能 SendTextMessage和SendDataMessage。如果您只是想向某人发送正常的短信,第一个工作正常。 所以我想SendDataMessage是我以某种方式需要使用的函数。但是我无法弄清楚如何使用它。在使用此功能的任何人的网上(我都能找到)似乎没有例子。

有谁知道任何可以帮助我的事情? :-) 要么如何发送Class0 7位编码短信,要么如何正确使用SendDataMessage功能。

1 个答案:

答案 0 :(得分:6)

sendDataMessage函数添加了自己的用户数据头UDH,由应用程序端口号和无数据的TP-Data-Coding-Scheme组成的信息,8位数据{{1} }(在SmsMessage代码库中找到)

0x04函数将使用GSM7packed编码和SendTextMessage - 未压缩,默认(7位)编码的TP-Data-Encoding-Scheme发送消息,无类。根据GSM 03.38规范

对于0级,7位数据,您将在TP-Data-Encoding-Scheme字节位置中寻找0x00值。 为此,需要控制所有正在发送的PDU。目前,公共android API不支持此功能。但是,可以通过内部API上的reflection完成(尽管非常不鼓励)。

请参阅SMS raw pdu in Android