我在向不同的运营商发送 SMS 时遇到问题:“@”被翻译为“?”。我的消息以 UTF-8 编码,我使用以下代码:
SmsManager manager = SmsManager.getDefault();
PendingIntent piSend = PendingIntent.getBroadcast(this, 0, new Intent(SMS_SENT), 0);
PendingIntent piDelivered = PendingIntent.getBroadcast(this, 0, new Intent(SMS_DELIVERED), 0);
String message = new String(new String("@").getBytes("UTF-8"))
manager.sendTextMessage(phonenumber, null, message , piSend, piDelivered);
谢谢!
笔记:
我尝试使用下面的代码,但我遇到了问题。在某些操作系统(如 Windows phone 8)上,SMS 永远不会发送。
manager.sendDataMessage(phonenumber, null, (short) 8091, message.getBytes(), piSend,
piDelivered);