Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中双SIM卡设备的手机号码验证_Android_Sms_Broadcastreceiver_Verification_Telephony - Fatal编程技术网

Android中双SIM卡设备的手机号码验证

Android中双SIM卡设备的手机号码验证,android,sms,broadcastreceiver,verification,telephony,Android,Sms,Broadcastreceiver,Verification,Telephony,我已经在我的应用程序中完成了sim/手机号码验证(与Whats应用程序相同)。比如: 发送消息部分: SmsManager sm = SmsManager.getDefault(); sm.sendTextMessage(mobileNumber, null, "Welcome", null, null); 通过BroadcastReceiver检查相同/当前设备接收到的消息: private class SMSReceiver extends BroadcastReceiver{ @Ov

我已经在我的应用程序中完成了sim/手机号码验证(与Whats应用程序相同)。比如:

发送消息部分:

SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage(mobileNumber, null, "Welcome", null, null);
通过BroadcastReceiver检查相同/当前设备接收到的消息:

private  class SMSReceiver extends BroadcastReceiver{

@Override
  public void onReceive(Context context, Intent intent) {

  if(intent.getAction() != null && intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){                    
  Bundle extras = intent.getExtras();
  if (extras == null){
     _submit.setText("Register");
     _mobile_number.setError("Invalid Number");
     mProgressDialog.dismiss();
     return;
   }


    try{              
        Object[] pdus = (Object[]) extras.get("pdus");
        SmsMessage msg = SmsMessage.createFromPdu((byte[]) pdus[0]);
        String origNumber = msg.getOriginatingAddress();
        String msgBody = msg.getMessageBody();

        String countryCode = country_codeselected ;
        String number = _mobile_number.getText().toString();
        final String mobileNumber = countryCode+number;
        final String reg_id = prefs.getString(GCM_REG_ID, ""); 

         if(PHONE_NUMBER.equals(origNumber)){
            //Success
         }

     .............................
它仅适用于单SIM卡设备

有谁能帮助我,如何做到这一点,双卡设备

大多数建议都是值得欣赏的

private void isDualSimOrNot(){
SimNoInfo telephonyInfo = SimNoInfo.getInstance(this);

String imeiSIM1 = telephonyInfo.getImeiSIM1();
String imeiSIM2 = telephonyInfo.getImeiSIM2();

boolean isSIM1Ready = telephonyInfo.isSIM1Ready();
boolean isSIM2Ready = telephonyInfo.isSIM2Ready();

boolean isDualSIM = telephonyInfo.isDualSIM();
Log.i("Dual = "," IME1 : " + imeiSIM1 + "\n" +
        " IME2 : " + imeiSIM2 + "\n" +
        " IS DUAL SIM : " + isDualSIM + "\n" +
        " IS SIM1 READY : " + isSIM1Ready + "\n" +
        " IS SIM2 READY : " + isSIM2Ready + "\n");
}
要进一步实施,请通过此链接

我认为

会有帮助的


因为这是一种免费验证手机号码的新方法。SMS方法是一种传统的方法。

我会避免这样做,因为它只适用于Android。另外,你要寄到哪个号码?如果您是从SIM卡发送的,那么当SIM卡不返回任何数据时,您会怎么做如果你将它发送到用户输入的电话号码,当他们发现它来自他们自己的手机时,你需要添加一个关于他们可能产生的短信费用的大免责声明

你也可以使用RingCaptcha,这是一项新的服务,可以帮助你在几秒钟内通过短信将经过验证的用户上传到你的应用程序中。集成各种风格的web、API和SDK的所有可用插件是轻而易举的事


[免责声明:我是RingCaptcha背后团队的一员]

它将如何帮助我?