自动填写获取到的短信验证码

1、短信监听广播 2、读取短信内容 3、截取短信内容【可以 reg截取】 4、填写至相应控件 PS:
首页 新闻资讯 行业资讯 自动填写获取到的短信验证码

源码简介

 

1、短信监听广播 2、读取短信内容 3、截取短信内容【可以 reg截取】 4、填写至相应控件 PS:DevStore测试没有获取到验证码
源码截图

源码片段

复制

public class MainActivity extends Activity {     private BroadcastReceiver smsReceiver;     private IntentFilter filter2;     private Handler handler;     private EditText et;     private String strContent;     private String patternCoder = "(?<!--\\d)\\d{6}(?!\\d)";       @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         et = (EditText) findViewById(R.id.et);         handler = new Handler() {             public void handleMessage(android.os.Message msg) {                 et.setText(strContent);             };         };         filter2 = new IntentFilter();         filter2.addAction("android.provider.Telephony.SMS_RECEIVED");         filter2.setPriority(Integer.MAX_VALUE);         smsReceiver = new BroadcastReceiver() {             @Override             public void onReceive(Context context, Intent intent) {                 Object[] objs = (Object[]) intent.getExtras().get("pdus");                 for (Object obj : objs) {                     byte[] pdu = (byte[]) obj;                     SmsMessage sms = SmsMessage.createFromPdu(pdu);                     // 短信的内容                     String message = sms.getMessageBody();                     Log.d("logo", "message     " + message);                     // 短息的手机号。。+86开头?                     String from = sms.getOriginatingAddress();                     Log.d("logo", "from     " + from);                     Time time = new Time();                     time.set(sms.getTimestampMillis());                     String time2 = time.format3339(true);                     Log.d("logo", from + "   " + message + "  " + time2);                     strContent = from + "   " + message;                     handler.sendEmptyMessage(1);                     if (!TextUtils.isEmpty(from)) {                         String code = patternCode(message);                         if (!TextUtils.isEmpty(code)) {                             strContent = code;                             handler.sendEmptyMessage(1);                         }                     }                 }             }         };         registerReceiver(smsReceiver, filter2);     }       @Override     protected void onDestroy() {         super.onDestroy();         unregisterReceiver(smsReceiver);     }       /**      * 匹配短信中间的6个数字(验证码等)      *      * @param patternContent      * @return      */     private String patternCode(String patternContent) {         if (TextUtils.isEmpty(patternContent)) {             return null;         }         Pattern p = Pattern.compile(patternCoder);         Matcher matcher = p.matcher(patternContent);         if (matcher.find()) {             return matcher.group();         }         return null;     } }</pre-->
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

  • 39.

  • 40.

  • 41.

  • 42.

  • 43.

  • 44.

  • 45.

  • 46.

  • 47.

  • 48.

  • 49.

  • 50.

  • 51.

  • 52.

  • 53.

  • 54.

  • 55.

  • 56.

  • 57.

  • 58.

  • 59.

  • 60.

  • 61.

  • 62.

  • 63.

  • 64.

  • 65.

  • 66.

  • 67.

  • 68.

  • 69.

  • 70.

  • 71.

  • 72.

  • 73.

  • 74.

  • 75.

  • 76.

  • 77.

  • 78.

源码链接:http://down.51cto.com/data/2009981