我在我的应用中完成了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卡设备的问题。
建议大多是值得注意的。
答案 0 :(得分:1)
答案 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背后团队的一员]