【发布时间】:2011-05-15 02:31:01
【问题描述】:
我正在使用适用于 Android 的 SMS api 开发一个应用程序。接收端是一个嵌入式单元,仅支持 7 位编码的 SMS,而我发送的字符串仅包含来自这个特定字母表的符号,这使您认为 Android 将其发送为 7 位编码。但事实并非如此。
因此,我正在寻找一种方法来指定要使用的编码。请参阅下面的代码,了解我今天的代码。 gsm7BitPackedToString 方法将字节数组转换为 7 位字符串,即该字符串仅包含 7 位兼容字符,并且是从内部 android api 复制的。
private static boolean sendMessage(String tel,byte[] message,int septets) {
SmsManager sms = SmsManager.getDefault();
if (septets != -1) {
String a = GsmAlphabet.gsm7BitPackedToString(message,0,septets);
sms.sendTextMessage(tel, null, a, null, null);
return true;
}
return false;
}
我考虑过以下解决方案:
- 使用某种内部方法,但 I've read about 似乎都不存在了。
- 发送数据消息,但这需要额外的用户数据头,接收端也不支持。
任何帮助表示赞赏:-)
【问题讨论】:
-
您好,请问您可以添加您在哪里找到 GsmAlphabet 的课程或链接吗?我想通过 USSD 发送 SMS,但我在 ussd 代码中发送的字符串的编码有问题。如果你愿意,我可以分享我发送 ussd 消息的代码。谢谢。
-
GsmAlphabet 取自android open source project
标签: android encoding sms pdu 7-bit