短信自动填写
- 短信变化的Uri:”content://sms”
- 短信箱uri:”content://sms/inbox”
- 没有填写入数据之前的短信uri:”content://sms/raw”
getContentResolver()对象注册观察者
- getContentResolver().registerContentObserver(uri,true,smsObserve);
权限获取sms读取权限
观察者模式
- 继承contentObserve,实现onchange方法
- 获取短信的内容: Uri inboxUri = Uri.parse(“content://sms/inbox”);
- Cursor cursor = mContext.getContentResolver().query(inboxUri,null,null,null,”date desc”);
正则表达式
- Pattern
- 一般6位数字的验证码的正则表达式为: Pattern.compile(“(\d{6})”);
Pattern pattern = Pattern.compile("(\\d{6})");
Matcher matcher = pattern.matcher(body);
if (matcher.find()){
code = matcher.group(0);
}
注册了观察后要销毁
- getContentResolver().unregisterContentObserver(smsObserve);