我正在使用适用于 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;
}
我考虑了以下解决方案:
- 使用某种内部方法,但我读过的那些似乎都不存在了。
- 发送数据消息,但这需要接收端也不支持的附加用户数据头。
任何帮助表示赞赏:-)