我使用简单的代码发送短信:
SmsManager.getDefault().
sendTextMessage(phone, null, "English characters", sentPI, deliveredPI);
一切正常。
但是当我用russinan语言发送短信时,请使用以下代码:
SmsManager.getDefault().
sendTextMessage(phone, null, "Русский текст", sentPI, deliveredPI);
我在另一个模拟器上收到类似这样的内容:*&^#R*)@#_(&)@U(RH#*(&()^
我该如何解决? 请帮忙。
答案 0 :(得分:1)
我认为你必须正确创建字符串。
例如:
new String("Русский текст", "UTF-16BE");
注意您的源代码文件。通常,添加像\ u0000这样的unicode字符代码会更安全。否则,您必须始终确保以UTF16格式保存源代码。
答案 1 :(得分:1)
这看起来像是模拟器的问题。我使用SmsManager.sendMultipartTextMessage()
方法发送俄语文本,并没有关于任何问题的真实用户报告。请试试真实设备。
答案 2 :(得分:0)
是的,它似乎是一个模拟器错误。这个问题迁移到另一个问题: https://stackoverflow.com/questions/8901477/android-receiving-another-bytes-after-sending-sms