1

SMSによるデバイス認証を扱うAndroidプロジェクトに取り組んでいます。私が直面している問題は、認証キーが送信されているときに、受信デバイスが文字化けしたテキストを取得し、元の送信コンテンツではないことです。

エミュレーターの 2 つのインスタンスを使用してコードをテストしています。

関連するコードは次のとおりです。

String MyPublic = "__key("+N.toString()+")yek__";
ArrayList<String> parts = smsmgr.divideMessage(MyPublic);
smsmgr.sendMultipartTextMessage(senderNumber, null, parts, null, null);

ただし、160 文字以内の単一の SMS を送信している場合でも、この問題は解消されません。

これは、着信メッセージをリッスンするために使用しているコードです。

    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」はシングルパート メッセージ (非マルチパート) として送信され、下から 3 番目と 2 番目はそのマルチパート認証キーの一部です。

これを解決するには助けが必要です。

よろしくプリヤブラタ。

4

0 に答える 0