Android自动获取输入短信验证码库AutoVerifyCode详解
时间:2022-07-27
本文章向大家介绍Android自动获取输入短信验证码库AutoVerifyCode详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、简介
Android的短信验证码自动输入库,内嵌自动申请权限,兼容性高,支持多项配置。
短信验证码长度 验证码类型(大写字母、小写字母、大小写字母、数字、数字字母) 短信内容过滤 发送者号码过滤 短信权限回调,失败重新操作等等 消息回调,可自行处理
Github地址: https://github.com/tpnet/AutoVerifyCode
二、使用
2.1 最简单的使用
适用在验证码为数字,而且验证码为4-6位。
AutoVerifyCode.getInstance()
.with(MainActivity.this)
.into(R.id.et_code) //要输入的编辑框
.start(); //开始
2.2 多种属性配置
/**
* 多种属性设置
* @param v
*/
public void complex(View v){
AutoVerifyCodeConfig config = new AutoVerifyCodeConfig.Builder()
.codeLength(6) // 验证码长度
.smsCodeType(AutoVerifyCodeConfig.CODE_TYPE_NUMBER) //验证码类型
.smsSenderStart("650") // 验证码发送者号码的前几位数字
.smsSender("6505551212") // 验证码发送者的号码
.smsBodyStartWith("【守护APP】") // 设置验证码短信开头文字,固定可以设置
.smsBodyContains("重置") // 设置验证码短信内容包含文字,每个功能包含不一样,例如注册、重置密码
.build();
AutoVerifyCode.getInstance()
.with(MainActivity.this)
.config(config) //验证码选项配置
.smsCallback(new MessageCallBack()) //短信内容回调
.permissionCallback(new PerCallBack()) //短信短信回调
.inputCompleteCallback(new OnInputCompleteListener() {
@Override
public void onInputComplete(String text) {
//自动输入完毕,可以进行登录等等操作
Log.e("@@","自动输入验证码完成"+text);
}
})
.into((EditText) findViewById(R.id.et_code)) //要输入的View
.start(); //开始
}
/**
* 获取短信回调接口
*
*/
class MessageCallBack extends SmsCallBack{
@Override
public void onGetCode(String code) {
Log.e("@@","验证码为:"+code);
}
@Override
public void onGetMessage(String mess) {
Log.e("@@","短信内容为:"+mess);
}
@Override
public void onGetSender(@Nullable String phoneNumber) {
Log.e("@@","发送者为:"+phoneNumber);
}
}
class PerCallBack implements PermissionCallBack{
@Override
public void onSuccess() {
//获取短信权限成功
Log.e("@@","获取短信权限成功:");
}
@Override
public boolean onFail() {
//获取短信权限失败
Toast.makeText(MainActivity.this,"拒绝获取短信权限",Toast.LENGTH_SHORT).show();
Log.e("@@","获取短信权限失败,返回真则重试获取权限,或者你自己手动获取了之后再返回真也行");
return false;
}
}
2.3 释放
因为一般只用一次,所以在页面销毁的地方释放内存。
@Override
protected void onDestroy() {
super.onDestroy();
//因为一般只用一次,所以页面销毁就释放。
AutoVerifyCode.getInstance().release();
}
三、原理
主要利用两种方法获取短信
短信数据库监听: 见SmsObserver 短信广播监听: 见SmsReceiver
然后利用Service实现这两种方法。注释都在代码上面了,挺简单的。 就不详细讲了。
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 微信内置浏览器 长按识别二维码 功能的两三个坑与解决方案
- Android中EditText
- 比特币分叉了,这到底是怎么回事?
- Excel导入导出数据库01
- 一些移动 Web 前端开发上的要点记录
- Angularjs基础(十一)
- Silverlight 2 的基础XAML语法学习
- TextView显示html文件中的图片
- 继百度、阿里之后,农业也刮起人工智能风,看它们都干了些啥?
- Windows Server 2008 与 .NET Framework 的版本之间有什么关系
- asp.net mvc相关开源项目推荐
- Android监听来电和去电
- PostCSS 插件postcss-lazyimagecss:自动填写width / height 属性
- Angularjs基础(十)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 爬虫 | JS逆向某验滑动加密(二)
- 闲聊 Kotlin-Native (0) - 我们为什么应该关注一下 Kotlin Native?
- 哈佛大学单细胞课程|笔记汇总 (五)
- 通过源码理解IGMP v1的实现(基于linux1.2.13)
- 微服务下数据一致性的几种实现方式
- 关于mac electron设备权限申请的方法
- 两种实现方式 | 如何查看消费者组的消费情况
- 一致性hash算法(golang)
- 微服务安全吗?
- 掌握Rabbitmq几个重要概念,从一条消息说起
- 超赞!墙裂推荐一个 MySQL 自动化运维工具!
- 设计模式-责任链模式
- 问题 linux下执行.sh 文件出现 no such file or directoryile
- 问题:ssm关于mybatis没有找到配置问题(not found)
- 设计模式-享元模式