0

テキストをユーザーの電話に送信して取得し、ユーザーが指定した番号とテキストの送信元の番号を照合して、ユーザーの電話番号を確認しようとしています...問題は、テキストが100%一致するにもかかわらず、いろいろ確認しましたが、バイト配列が一致しないので「電話番号」が一致せず、確認できません。これは本当のことですか: ネットワークを介して送信された値は、バイト配列を変更しますか?

送信されたテキスト:

String user_phone_number = phoneNumber.getText().toString();
String number = "" + user_phone_number;
String verificationCode = "717345221";
String message = verificationCode + user_phone_number;
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(number, null, message, null, null);

受け取ったテキスト:

if (intent.getAction()
            .equals("android.provider.Telephony.SMS_RECEIVED")) {
        Bundle bundle = intent.getExtras();

        SmsMessage[] msgs = null;
        String msgFrom;
        if (bundle != null) {
            try {
                Object[] pdus = (Object[]) bundle.get("pdus");
                msgs = new SmsMessage[pdus.length];
                for (int i = 0; i < msgs.length; i++) {
                    msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    msgFrom = msgs[i].getOriginatingAddress();
                    String msgBody = msgs[i].getMessageBody();
                    String verificationCode = "717345221";

                    if (msgBody.startsWith(verificationCode)) {
                        msgBody = msgBody.substring(verificationCode
                                .length());

                        if (msgBody.trim() == msgFrom.trim()) {
                            showCorrectNotification(context);
                            try {
                                Intent o = new Intent(context,
                                        ProfileInformation.class);
                                o.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                context.startActivity(o);

                            } catch (Exception e) {
                                e.toString();
                            }
   }
   }
   }
4

1 に答える 1

0

次のように文字列を比較することはできません。

msgBody.trim() == msgFrom.trim()

以下を使用する必要があります。

msgBody.trim().equals(msgFrom.trim())
于 2013-10-20T13:20:49.700 に答える