用ContentObserver内容观察者写了一个自动填写验证码
来源:互联网 发布:mac acl是什么意思 编辑:程序博客网 时间:2024/05/19 22:28
1.主界面代码(activity_main.xml):
<TextView android:id="@+id/et_validateCode" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="请输入验证码" android:textSize="30dp" />
2.这里面写了在你指定的号码发来的短信截取验证码(MainActivity.java):
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.et_validateCode); handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle bundle=msg.getData(); textView.setText(bundle.getString("number")); } }; this.getContentResolver().registerContentObserver(Uri.parse("content://sms"),true,new MyObserver(handler)); }//继承ContentObserver 必须重载一个onChange去处理回调 class MyObserver extends ContentObserver{ public MyObserver(Handler handler) { super(handler); } @Override public void onChange(boolean selfChange) { Cursor cursor=MainActivity.this.getContentResolver().query(Uri.parse("content://sms/inbox"),null,null,null,"date desc"); if(cursor!=null) { if (cursor.moveToNext()) { //我在这里写的一个死的电话号,判断是否是这个手机号,然后在判断是有否有(验证码) if (cursor.getString(cursor.getColumnIndex("address")).equals("+8615074833565") && cursor.getString(cursor.getColumnIndex("body")).contains("验证码")) { String date = cursor.getString(cursor.getColumnIndex("body")); int star = date.indexOf(":"); //在这里判断要截取多少位 String data = date.substring(star + 1, star + 5); Message ms = new Message(); Bundle bundle = new Bundle(); bundle.putString("number", data); ms.setData(bundle); handler.sendMessage(ms); } } } } }
3.记得要加短信的权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_SMS"/>
0 0
- 用ContentObserver内容观察者写了一个自动填写验证码
- Android 应用中使用ContentObserver自动填写短信验证码
- 短信验证码自动填写认知之ContentObserver详解
- 自动填写验证码(内容提供者)
- Android内容观察者 --ContentObserver(待写)
- Android:ContentObserver(内容监听者)之自动接收验证码
- Android内容观察者--ContentObserver
- ContentObserver内容观察者
- ContentObserver 内容观察者
- Android -- ContentObserver 内容观察者
- ContentObserver(内容观察者)
- 短信验证码(通过ContentObserver)实时填写
- 短信验证码自动填写
- 短信验证码自动填写
- Android自动填写验证码
- 短信验证码自动填写
- Android 自动填写验证码
- 短信验证码自动填写
- spring定时器
- 命令查询职责分离(CQRS)模式
- var oEvent=ev||event;何时使用
- Invalid bound statement (not found)
- Scikit-learn提供的例子介绍几种常用的特征选择
- 用ContentObserver内容观察者写了一个自动填写验证码
- Python数据抓取
- Python 元组遍历排序操作方法
- maven项目启动Error configuring application listener of class org.springframework.web.context.ContextLoad
- ICPCCamp2017 Day 5 I Coprime Queries(莫比乌斯函数 + 容斥定理 + 二分)
- RNN以及LSTM的介绍和公式梳理
- Python 猜数小游戏
- ContentResolve内容访问者(访问系统)
- C# 图片识别(支持21种语言)