我正在开发一个 android 项目,该项目通过短信处理设备身份验证。我面临的问题是,在发送身份验证密钥时,接收设备会收到乱码,而不是原始发送的内容。
我正在使用模拟器的两个实例来测试代码。
以下是相关代码:
String MyPublic = "__key("+N.toString()+")yek__";
ArrayList<String> parts = smsmgr.divideMessage(MyPublic);
smsmgr.sendMultipartTextMessage(senderNumber, null, parts, null, null);
但是,当我在 160 个字符内发送一条短信时,这个问题并没有消失。
这是我用来监听传入消息的代码。
public void onReceive(final Context context, Intent intent) {
msgReceived = false;
Object[] pdus=(Object[])intent.getExtras().get("pdus");
Bundle bundle = intent.getExtras();
if (bundle != null) {
pdus = (Object[])bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
SmsMessage sms = messages[0];
String body;
if (messages.length == 1 || sms.isReplace()) {
body = sms.getDisplayMessageBody();
} else {
StringBuilder bodyText = new StringBuilder();
for (int i = 0; i < messages.length; i++) {
bodyText.append(messages[i].getMessageBody());
}
body = bodyText.toString();
}
}
使用“多部分”事物时收到的消息属于这种类型:
“HelloWorld”作为单部分消息(非多部分)发送,下面的第三个和第二个是该多部分身份验证密钥的一部分。
需要帮助解决这个问题。
问候普里亚布拉塔。