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

时间:2014-12-12 05:55:22

标签: android sms broadcastreceiver verification telephony

我在我的应用中完成了SIM /手机号码验证(与Whats APP相同)部分。类似的东西:

发送消息部分:

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卡设备。

任何人都可以帮我解决双SIM卡设备的问题。

建议大多是值得注意的。

3 个答案:

答案 0 :(得分:1)

我想

https://github.com/cognalys/cogdemo会有所帮助

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

答案 1 :(得分:0)

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");
}

要进一步实施,请点击此链接Android How to get Phone number from the Dual sim phone

答案 2 :(得分:0)

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

您也可以使用RingCaptcha - 一项新服务,可以通过短信在几秒钟内帮助您将经过验证的用户加入您的应用。对于所有类型的Web,API和SDK,所有可用的插件都可以轻松集成。

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