2017-01-28 18 views
-3

如何通過短信將安全代碼發送到用戶設備並將其設置爲我的應用程序中的editText? 例如在什麼應用程序後,輸入手機號碼,安全碼,應用程序的方式自動安全代碼設置爲應用程序和註冊用戶如何獲取安全代碼發送到用戶設備

請幫助我,並顯示例如對於此作業活動

回答

0

的OnCreate()

 IntentFilter intentFilter = null;    
     intentFilter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION);   
     registerReceiver(smsReceiver, intentFilter); 

現在把在同一活動這個廣播:

private BroadcastReceiver smsReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      Bundle myBundle = intent.getExtras(); 
      SmsMessage[] messages = null; 
      if (myBundle != null) { 
       Object[] pdus = (Object[]) myBundle.get("pdus"); 

       messages = new SmsMessage[pdus.length]; 

       for (int i = 0; i < messages.length; i++) { 
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
         String format = myBundle.getString("format"); 
         messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i], format); 
        } else { 
         messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
        } 
         /*strMessage += "SMS From: " + messages[i].getOriginatingAddress(); 
         strMessage += " : "; 
         strMessage += messages[i].getMessageBody(); 
         strMessage += "\n";*/ 
       } 
       if (messages[0].getMessageBody().substring(11).contains("OTP")){ 
        final Pattern p = Pattern.compile("(\\d{4})"); 
        final Matcher m = p.matcher(messages[0].getMessageBody().substring(11)); 
        if (m.find()) { 
         Log.e("SMSotp", String.valueOf(m.group())); 
        } 
        String[] tet = m.group().split("(?!^)"); 

        otp1.setText(tet[0]); 
        otp2.setText(tet[1]); 
        otp3.setText(tet[2]); 
        otp4.setText(tet[3]); 


       } 
      } 

     } 
    }; 

現在,在清單補充一點:

<uses-permission android:name="android.permission.RECEIVE_SMS"/> 
+0

謝謝你的幫助 – SmartMob

相關問題