Android:如何以编程方式发送unicode短信并在另一端正确接收?

时间:2012-01-15 19:51:55

标签: android sms

我使用简单的代码发送短信:

SmsManager.getDefault().
  sendTextMessage(phone, null, "English characters", sentPI, deliveredPI);

一切正常。

但是当我用russinan语言发送短信时,请使用以下代码:

SmsManager.getDefault().
 sendTextMessage(phone, null, "Русский текст", sentPI, deliveredPI);

我在另一个模拟器上收到类似这样的内容:*&^#R*)@#_(&)@U(RH#*(&()^

我该如何解决? 请帮忙。

3 个答案:

答案 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