Android使用ContentObserver进行实时短信填写
来源:互联网 发布:伪随机算法 编辑:程序博客网 时间:2024/04/29 16:35
public class SmsObservable extends ContentObserver { private static final String TAG = "SmsObservable"; private Context mContext; private Handler handler; /** * Creates a content observer. * * @param handler The handler to run {@link #onChange} on, or null if none. */ public SmsObservable(Context mContext, Handler handler) { super(handler); this.mContext = mContext; this.handler = handler; } @Override public void onChange(boolean selfChange, Uri uri) { super.onChange(selfChange, uri); Log.e(TAG, "uri :" + uri.toString()); //会触发两次,只有第二次有用 if ("content://sms/raw".equals(uri.toString())) { return; } Uri inboxUri = Uri.parse("content://sms/inbox"); Cursor cursor = mContext.getContentResolver().query(inboxUri, null, null, null, "date desc"); if (cursor != null) { if (cursor.moveToFirst()) { String address = cursor.getString(cursor.getColumnIndex("address")); String body = cursor.getString(cursor.getColumnIndex("body")); Log.e(TAG, "address :" + address + " body : " + body); // TODO: 2016/7/3 此处还可以拿手机号判断是不是本公司该服务器发出的消息 //进行正则表达式验证 Pattern pattern = Pattern.compile("(\\d{6})");//6个数字连在一起的 Matcher matcher = pattern.matcher(body); if (matcher.find()) { String code = matcher.group(0);//获取当前组里面的第一个 Log.e(TAG, "匹配出来的code :" + code); handler.obtainMessage(MainActivity.SEND_SMS,code).sendToTarget(); } } } }}
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private SmsObservable smsObservable; public static final int SEND_SMS = 1; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { Log.e(TAG,".... msg :"+msg.obj); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); smsObservable = new SmsObservable(this,handler); //@NonNull Uri uri, boolean notifyForDescendents,@NonNull ContentObserver observ Uri uri = Uri.parse("content://sms"); /** * 是否监听sms uri中的所有变化 */ getContentResolver().registerContentObserver(uri,true,smsObservable); } @Override protected void onDestroy() { super.onDestroy(); getContentResolver().unregisterContentObserver(smsObservable); }}
0 0
- Android使用ContentObserver进行实时短信填写
- Android 应用中使用ContentObserver自动填写短信验证码
- 短信验证码(通过ContentObserver)实时填写
- 使用ContentObserver监听短信
- 使用ContentObserver监听短信
- 使用ContentObserver监听短信
- 短信验证码自动填写认知之ContentObserver详解
- 这是一个用于拦截android实时短信的库,可以进行短信过滤,得到自己想要的内容,可以用于需要自动填写短信验证码的app项目
- Android ContentObserver使用
- Android ContentObserver ---拦截短信并删除
- Android ContentObserver ---拦截短信并删除
- Android ContentObserver监听短信提取验证码
- 使用ContentObserver实现短信提醒功能
- 使用ContentObserver监听短信数据库的变化
- Android使用ContentObserver监听数据库变化,截取系统通知用户接收到短信
- Android 使用ContentObserver监听短信的变化,并发送信息给特定的手机号码
- android ContentObserver监听系统短信和备份短信到本地
- Android 之短信验证码自动填写
- 【MFC入门】之五 标准控件在可视化编程中的应用之对话框通用控件
- Java8 Lambda
- 原型链
- WIN7系统32位或者64位运行ARCENGINE报错的解决方法
- ppt-配色
- Android使用ContentObserver进行实时短信填写
- 选择排序
- 什么时候用堆,什么时候用栈?
- Android Studio Mac 常用快捷键
- js文件处理
- Java Web 学习笔记之一:服务器获取表单上传的文件
- Spring-bean的装配
- Mysql各版本安装包下载地址
- opensslmd5算法源码c++版