android实现指纹识别功能
功能介绍
- 支持指纹识别,兼容 Android 6.0 和 Android 9.0
- 提供界面友好的指纹识别弹窗,可自定义其样式
- 实现国际化(支持中文和英文)
Gradle依赖
dependencies {
implementation 'com.github.ZuoHailong:BiometricPrompt:0.2.3'
}
指纹识别用法简述
FingerprintVerifyManager.Builder builder = new FingerprintVerifyManager.Builder(MainActivity.this);
builder.callback(new FingerprintCallback()).build();
使用指纹识别功能,只需要关心 FingerprintVerifyManager
和 FingerprintCallback
两个类:
FingerprintVerifyManager 通过 Builder 初始化并管理指纹识别功能
FingerprintCallback 指纹识别监听,提供 onSucceeded()、onFailed()、onCancel()、onUsepwd() 、onNoneEnrolled()、onHwUnavailable() 六个回调方法
当用户取消指纹验证框时,回调 onCancel() 方法;
当用户选择密码验证时,回调 onUsepwd() 方法
当手机上未添加指纹时,回调 onNoneEnrolled() 方法
当硬件模块不可用时,回调 onHwUnavailable() 方法
Builder详细用法
1、实例化 Builder,必需
FingerprintVerifyManager.Builder builder = new FingerprintVerifyManager.Builder(Activity activity)
2、设置验证结果监听,必需
builder.callback(new FingerprintCallback())
3、开始构建,弹出指纹识别框,并拉起指纹扫描器等待扫描指纹,必需
builder.build()
以下方法适用于 Android 6.0 自定义识别框的情况
4、设置验证框中指纹图标的颜色,可选
builder.fingerprintColor(@ColorInt int color)
5、置取消按钮的文本色,可选
builder.cancelTextColor(@ColorInt int color)
6、设置密码验证按钮是否显示,默认不显示,可选
builder.usepwdVisible(boolean isVisible)
7、设置密码验证按钮的文本色,可选
builder.usepwdTextColor(@ColorInt int color)
以下方法适用于 Android 9.0 系统提供识别框的情况
8、在 Android 9.0+ 是否启用系统提供的识别框,默认不启用,可选
builder.enableAndroidP(boolean enableAndroidP)
9、识别框的主标题,默认“指纹验证”,可选
builder.title(String title)
10、识别框的副标题,默认不显示,可选
builder.subTitle(String subTitle)
11、识别框的描述信息,默认不显示,可选
builder.description(String description)
12、识别框“取消”按钮上的文字,默认“取消”,可选
builder.cancelBtnText(String cancelBtnText)
注意:上述适用于 Android 6.0 的 API 和适用于 Android 9.0 的 API 并不是互斥的。
Demo:https://github.com/cuiwenju2017/FingerprintRecognition
总结
以上所述是小编给大家介绍的android实现指纹识别功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
- 采用双拼域名meicai.cn的美菜网融资4.5亿美元
- 区块链技术或将迎来突破性进展,以特币未来生机勃勃
- 配置多个网卡的OpenStack VM
- .NET Core采用的全新配置系统[3]: “Options模式”下的配置是如何绑定为Options对象
- 游戏用户中心开发
- .NET Core采用的全新配置系统[4]: “Options模式”下各种类型的Options对象是如何绑定的?
- js运算符优先级笔记
- 通过协同绘制用GAN合成高分辨率无尽道路
- ASP.NET MVC的Model元数据与Model模板:预定义模板
- 为您的组织选择正确的企业云解决方案
- 搞定这些疑难杂症,向css3动画说yes
- 前十一个网络游戏业务收入1341亿 同比增22.1%
- ASP.NET MVC Model元数据及其定制:一个重要的接口IMetadataAware
- 使用Docker 1.12.x构建多容器Web应用程序
- 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 文档注释
- 还在「黑盒炼丹」? 教你如何实现一行代码透视炼丹过程
- SpringCloud Alibaba微服务实战十九 - 集成RBAC授权
- 混合算法(GA+TS)求解作业车间调度问题(JSP)-禁忌搜索部分
- 打卡群刷题总结0810——从前序与中序遍历序列构造二叉树
- JavaScript性能优化
- Python+Excel+Word一秒制作百份合同
- SQL 订单揽收统计
- LeetCode11|搜索二维矩阵
- LeetCode14|合并排序的数组
- LeetCode12|两个数组的交集
- LeetCode10|只出现一次的数字II
- LeetCode15|有序数组中出现次数超过25%的元素
- 小米5(gemini:双子座)刷机
- Cygwin本地安装版
- arm-gcc各版本区别