Android多部分短信内容在接收时变得不可读

时间:2013-09-02 13:34:46

标签: android sms multipart

我正在开发一个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();
                }
}

使用“多部分”事物时收到的消息属于以下类型: enter image description here

“HelloWorld”作为单部分消息(非多部分)发送,而第3部分和第二部分是该部分的多部分认证密钥。

需要帮助解决此问题。

此致 Priyabrata。

0 个答案:

没有答案