自动获取短信验证码(详细注释)

效果图

步骤一:

自定义监听类

/** * Created by pengkv on 15/10/12. * 短信监听器,,用于自动填充验证码 */{Activity activity = null;String SMS_ADDRESS_PRNUMBER = (Activity activity, Handler handler, EditText verifyText) {super(handler);this.activity = activity;this.verifyText = verifyText;}(boolean selfChange) {super.onChange(selfChange);Cursor cursor = null;// 光标// 读取收件箱中指定号码的短信cursor = activity.getContentResolver().query(Uri.parse(SMS_URI_INBOX),String[]{SMS_ADDRESS_PRNUMBER, (cursor != null) {cursor.moveToFirst();if (cursor.moveToFirst()) {String smsbody = cursor.getString(cursor.getColumnIndex(“body”));//用正则表达式匹配验证码Pattern pattern = Pattern.compile(“[0-9]{6}”);Matcher matcher = pattern.matcher(smsbody);if (matcher.find()) {//是否匹配smsContent = matcher.group();//获取匹配文本,即验证码if (verifyText != null && null != smsContent && !””.equals(smsContent)) {verifyText.requestFocus();//获取焦点verifyText.setText(smsContent);//设置文本verifyText.setSelection(smsContent.length());//设置光标位置}}}}}}步骤二:

在登录页面事件化监听类

//实例化短信监听器SMSContentObserver mObserver = new SMSContentObserver(getActivity(), new Handler(), mEt_auth_code);// 注册短信变化监听mContext.getContentResolver().registerContentObserver(Uri.parse(“content://sms/”), true, mObserver);步骤三:

声明读取短信权限

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />小结:

去短信库获取短信比较不容易被拦截

更重要的是心理上的完全自由和放松,

自动获取短信验证码(详细注释)

相关文章:

你感兴趣的文章:

标签云: