我正在编写一个Android应用程序,它允许在两个设备之间进行呼叫和响应。我目前正在使用sendMultipartTextMessage发送超过160个字符的消息。然而,收到的消息并不是我发送的消息。
String response = "abcd abcd abcd abcdabcd abcd abcd abcd abcd...to 300 chars";
Log.i("response",response);
SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts = sms.divideMessage(response);
for (String part : parts) {
Log.i("part",part);
}
sms.sendTextMessage(sender, null, "This should be normal", null, null);
sms.sendMultipartTextMessage(sender, null, parts, null, null);Log.i会按预期运行,并分部分输出消息。sendTextMessage还会将正确的短信发送给我的合作伙伴模拟器。然而,sendMultipartTextMessage发送回来的所有部分都经过了奇怪的翻译。例如,上面的response将被接收为"BEGIABEGIABEGIABEGIA...“等等,但对空格和数字有一些细微的变化。
是什么原因导致sendMultipartTextMessage在短信中出现乱码?
发布于 2011-07-06 23:33:27
这是平台中的一个bug :参见http://code.google.com/p/android/issues/detail?id=13737。它可能仅限于模拟器,因此请在真实设备上尝试。
发布于 2013-06-22 02:31:14
当您从任何模拟器运行您的android应用程序时,sendMultipartTextMessage方法无法正常工作。
因此,您需要在实际的android智能手机上测试您的android应用程序。另一件要考虑的事情是,在发送sms时,始终将null作为第三个第二个参数(包含发送者电话号码的字符串)传递,否则代码将不会发送SMS。
我希望这能对你有所帮助。
https://stackoverflow.com/questions/6598984
复制相似问题