Android读取短信验证码 自动填写
public class SmsUtil extends ContentObserver {
public static final String SMS_URI_INBOX = "content://sms/inbox";
private Activity activity = null;
private S
1.创建验证码实体类 public class SmsUtil extends ContentObserver { public static final String SMS_URI_INBOX = "content://sms/inbox"; private Activity activity = null; private String smsContent = ""; private EditText verifyText = null; public SmsUtil(Activity activity, TaskHandler handler, EditText verifyText) { super(handler); this.activity = activity; this.verifyText = verifyText; } @Override public void onChange(boolean selfChange) { super.onChange(selfChange); Cursor cursor = null;// 光标 // 读取收件箱中指定号码的短信 if (null != activity.managedQuery(Uri.parse(SMS_URI_INBOX), new String[] { "_id", "address", "body", "read" }, "address=? and read=?", new String[] { "1069036136580", "0" }, "date desc")) { cursor = activity.managedQuery(Uri.parse(SMS_URI_INBOX), new String[] { "_id", "address", "body", "read" }, "address=? and read=?", new String[] { "1069036136580", "0" }, "date desc"); if (cursor != null) {// 如果短信为未读模式 cursor.moveToFirst(); if (cursor.moveToFirst()) { String smsbody = cursor.getString(cursor .getColumnIndex("body")); System.out.println("smsbody=======================" String regEx = "[^0-9]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(smsbody.toString()); smsContent = m.replaceAll("").trim().toString(); verifyText.setText(smsContent); } } } } } 2.监听 content = new SmsUtil(UserRegisterActivity.this, mTaskHandler, mCodeInput); // 注册短信变化监听 this.getContentResolver().registerContentObserver( Uri.parse("content://sms/")asp验证码, true, content); 3.取消注册 @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); this.getContentResolver().unregisterContentObserver(content); } (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |