快速实现自动填写验证码的功能
近日,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
每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。
如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。
欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号:
快速实现自动填写验证码的功能相关推荐
- 爬虫学习_selenium自动填写验证码
爬虫学习_自动填写验证码 介绍一哈 项目 第一步 打开网站 第二步 获取验证码图片 第二步 获取验证码图片 第三步 识别验证码 结束 完整代码 介绍一哈 最近在跟着静觅大神.............. ...
- 截取短信验证码,实现自动填写验证码
一个小功能实现短线验证码验自动填写功能. 拿到这个功能时,首先需要怎么去拦截获取手机短信.就用观察着来观察系统里的短消息的数据库的变化,"表"内容观察者,只要数据库发生变化,都会出 ...
- Android 自动填写验证码
获取验证码几乎是每个应用所必备的,很多应用在用户注册的时候设置一个验证码的功能,根据手机号获取验证码的作用就是防止恶意注册.先来看一下效果图 上面的效果就是读取短信的信息,然后根据信息内容将验证码截取 ...
- 腾讯地图类快递自动填写收发货地址功能
开发场景 获取当前位置信息或者某地的行政区划信息或者街道信息,实现类似电商平台填写收货地址功能. 技术选型 微信小程序JavaScript SDK 微信小程序插件 确定业务逻辑及页面设计 以简洁大气为 ...
- 微信小程序类快递自动填写收发货地址功能
开发场景 获取当前位置信息或者某地的行政区划信息或者街道信息,实现类似电商平台填写收货地址功能. 技术选型 微信小程序JavaScript SDK 微信小程序插件 确定业务逻辑及页面设计 以简洁大气为 ...
- 从零设计开发快递自动填写收发货地址功能
开发场景 获取当前位置信息或者某地的行政区划信息或者街道信息,实现类似电商平台填写收货地址功能. 技术选型 微信小程序JavaScript SDK 微信小程序插件 确定业务逻辑及页面设计 以简洁大气为 ...
- c语言如何自动填写验证码,小程序 自带样式的验证码自动填入
一.业务场景:像ios手机上的获取到验证码,,会在键盘上显示,点击,会自动填入到输入框里面:这时候输入框是一个input还好,,他会自动填入,但是现在要求是验证码的6位数字是分开的,原生的一个inpu ...
- Android短信验证码自动填写功能的实现
本文出自:黄敏争的博客 前言: android应用经常会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,通常,用户收到短信需要最小化应用去查看短信再填入验证码,必然比较麻烦, ...
- 短信验证码自动填写功能的实现
http://blog.csdn.net/u014343528/article/details/50899380 本文出自:黄敏争的博客 前言: android应用经常会涉及到注册登录功能,而许多的注 ...
最新文章
- 下载mysql镜像教程_docker下安装mysql镜像
- es6 对象中是否有键值_干货| ES6/ES7好玩实用的特性介绍
- 2021-07-3022
- 无线路由器在手机上如何连接服务器,192.168.10.1路由器手机怎么设置? | 192路由网...
- CNN经典模型:VGGNet
- lower版购物车模拟
- 让AI自动调参,才是百度无人车的进化方式:适应环境全靠自己 | 论文
- 使用WebService的方式调用部署在服务器的Wcf服务
- windows下工具
- Tecplot 安装记录
- 史上最全Java学习路线:免费全套Java视频合集 (基础+进阶+高级+项目+面试题)
- 软考高级 真题 2011年下半年 信息系统项目管理师 综合知识
- 夏天计算机自动关机,电脑频繁自动关机,原因可能出在这
- 周期性的方波 matlab,matlab产生方波脉冲和周期性方波信号 - 副本
- 浅谈安卓逆向协议(二)- 抖音,皮皮虾
- 阿里云ECS和WorldPress + Nginx实现固定连接策略
- AI、量子计算引爆硬科技创新,雷鸣、王海峰、施尧耘等北大120周年论道信科最前沿...
- win7 安装openssh_05、Win7上openSSH的安装与配置
- C#操作Word文档
- 关于计算机的英语谚语,经典英语谚语60句