快速实现自动填写验证码的功能
来源:互联网 发布:网络直播 经济效益 编辑:程序博客网 时间:2024/05/23 00:00
近日,Uber的创始人卡拉尼克终于被迫离职了。自进入2017年以来,Uber的麻烦事就没有断过。先是由于支持特朗普的限制移民政策而成为众矢之的,接着又被前女性员工控诉在Uber时长期受到性骚扰,之后又被谷歌控诉非法从谷歌这里获取无人驾驶技术。Uber是目前所有未上市公司中估值最高的公司,董事会急于想摆脱公司如此多的负面影响,于是就在上周,卡拉尼克宣布自己将开始无限期休假。但董事会对此明显还是不够满意,继续向卡拉尼克施压。卡拉尼克昨日无奈宣布自己正式辞职,并且会协助招聘新的Uber CEO。
又到周五了,开心的周末即将到来。另外今天0点钟《变形金刚5》上映喽,周末快带上女朋友去看电影吧。
本篇是 MichaelX 的第五篇投稿了,分享了一个开源库,主要是自动识别短信验证码,希望对大家有所帮助。
MichaelX 的博客地址:
http://blog.csdn.net/xiong_it
在 Android Studio 打开你的 app module 中的 build.gradle,添加依赖:
如果无法下载上述依赖,可以打开你的项目根目录下的 build.gradle,添加 maven 仓库地址:
示范代码
AutoInputAuthCode 是一个帮助android开发者快速实现自动填写验证码的类库,客户端示例代码如下:
1. 通过单例获取一个 AuthCode 对象;
2. 提供一个上下文对象给 AuthCode,放心,我会妥善处理你的上下文;
3. 提供一个你的验证码特征描述;
4. 告诉 AuthCode 你想将验证码写入哪个 EditText.
效果图
注意事项
自动填写验证码需要读取短信权限,请在清单中添加权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
由于读取短信在API 23(Android 6.0)上权限级别是 dangerous。所以还需要动态申请权限,但是申请权限需要依赖于 Activity 或者 Fragment 中的 onRequestPermissionsResult() 回调,所以需要开发者自己实现。
此技术的实现原理是“广播接收者”和“内容观察者”。利用接收到短信时的系统发出的广播进行短信的读取,并利用正则表达式解析出短信中的验证码。
在部分手机上,该广播被禁用,所以需要使用到内容观察者,在短信收件箱发生变化时,对短信数据库进行读取,得到相应验证码短信,并利用正则表达式解析出短信中的验证码。本文内容请使用于正规用途,请勿用于非法监听用户短信等恶意行为。谢谢合作!
使用广播接收者获取验证码
广播接收者一般用法:
1. 继承 BroadcastReceiver
2. 重写 onReceive(Context context, Intent intent);
3. 注册自定义广播接收者(1.代码动态注册;2.清单文件注册)
使用广播接收者获取验证码实现代码如下:
以上,从短信广播中得到了 Message 实例,并得到短信。验证码获取方法为 parseSmsBody(String smsBody),最后会统一讲解。
使用内容观察者得到短信验证码
内容观察者的一般用法
1. 继承内容观察者 ContentObserver
2. 重写 onChange(boolean selfChange)方法
3. 注册内容观察者
context.getContentResolver().registerContentObserver(uri, true, mReadSmsObserver);
使用内容观察者获取验证码实现代码如下:
注意:注册短信观察者的 Uri 和获取 Cursor 的 Uri 不相同,如果使用获取 Cursor 的 Uri 进行注册,则得不到 onChange 回调。
正则表达式解析短信得到验证码
将上述从广播接收者,内容观察者中得到的 smsCode 填入 EditText 输入框中即可。
项目地址:
https://github.com/xiong-it/AutoInputAuthCode
每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。
如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。
欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号:
- 快速实现自动填写验证码的功能
- Android短信验证码自动填写功能的实现
- 短信验证码自动填写功能的实现
- Android短信验证码自动填写功能的实现
- Android开发:使用AutoInputAuthCode快速实现自动填写验证码
- Android开发:实现APP自动填写注册验证码功能
- Android开发:实现APP自动填写注册验证码功能
- android短信接收器的实现,可以实现自动填写短信验证码功能
- 读取短信自动填写验证码功能
- android获取短信验证码并自动填写的实现
- Android短信验证码自动填写的实现
- Android短信验证码的自动填写
- 自动填写获取的短信验证码
- 截取短信验证码,实现自动填写验证码
- 短信验证码自动填写
- 短信验证码自动填写
- Android自动填写验证码
- 短信验证码自动填写
- 实现一个清新美观的加载按钮
- Android热修复——Tinker
- 自定义进度条PictureProgressBar
- 高级自定义View,打造华丽的ViewPagerIndicator效果
- 一起来造一个RxJava,揭秘RxJava的实现原理
- 快速实现自动填写验证码的功能
- Android SVG使用进阶
- 简单实现自定义横向滚动选择View
- 带你玩转Glide的回调与监听
- Android FlexboxLayout 聪明的UI布局
- 带你学习阿里巴巴的开源库VLayout
- 教你如何封装一个通用的PopupWindow
- CSDN上的Android牛人要搞事情啦!
- Android SVG使用之AnimatedVectorDrawable