正在通过电话1和2发送和接收消息

时间:2019-01-11 13:32:03

标签: java android android-studio

我有一个代码验证器,该代码验证器从电话1向电话2发送一个代码。然后,电话2与数据库进行核对并发送回已验证的代码。

仿真器:我正在使用两个设备作为仿真器(Xiomi和Samsung),它们的API级别均为28。

问题:当Xiomi将代码发送给三星,然后在验证后三星将其发送回去,一切工作都很好,但是反之则行不通。

      public class ReceiveBroadcast extends BroadcastReceiver {

    private static final String TAG = "MyBroadcastReceiver";
    String body,number;





    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        if(bundle != null) {
            Object[] obj=(Object[])bundle.get("pdus");
            if(obj!=null){
                for(int i=0;i<obj.length;i++){
                    SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])obj[i]);
                    body = smsMessage.getMessageBody().toString();
                    number = smsMessage.getOriginatingAddress().toString();
                    Toast.makeText(context, body, Toast.LENGTH_SHORT).show();


                }

                databasePhone.orderByKey().limitToLast(1).addListenerForSingleValueEvent(new ValueEventListener() {


                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {

                        for (DataSnapshot readphone : dataSnapshot.getChildren()) {
                            Log.v("tmz", "" + readphone.getKey()); //displays the key for the node
                            String lastphoneNumber = readphone.child("phoneNumber").getValue().toString();
                            String lastIMSINumber = readphone.child("code").getValue().toString();
                            //String lastIMSINumber= "278010401571570";
                            Toast.makeText(getApplicationContext(), imsi, Toast.LENGTH_SHORT).show();
                            if(lastIMSINumber.equals(body)){

                                Intent intent = new Intent(MainActivity.this, ReceiveBroadcast.class);

                                sendBroadcast(intent);
                                //sendSMSBroadcast();
                                signoutButton.setEnabled(true);
                                statusText.setText("Signed in ");
                                SmsManager sms = SmsManager.getDefault();
                                sms.sendTextMessage(number, null, "Verified " , null, null);
                                Toast.makeText(MainActivity.this, "Phone Number Retrieved "+ lastphoneNumber + " IMSI: " + lastIMSINumber, Toast.LENGTH_LONG).show();

                            }
                            else {
                                Toast.makeText(MainActivity.this, "Imsi does not match!", Toast.LENGTH_LONG).show();

                            }
                        }
                    }
                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                    }
                });

            }
        }
    }
}

0 个答案:

没有答案