IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Biometricprompt 生物识别(指纹) -> 正文阅读

[移动开发]Android Biometricprompt 生物识别(指纹)

从API 29 即 Android 10 开始,系统为第三方应用提供了通过生物识别验证用户是否为本人的功能,实现也比较简单

首先要使用生物识别需要判断系统版本

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
	//使用生物识别
}else{
	//不使用生物识别
}

声明权限

<uses-permission android:name="android.permission.USE_BIOMETRIC"/>

创建对象
整个流程基本涉及三个对象
BiometricPrompt为生物识别的对话框,通过Builder的build()方法创建,通过authenticate方法显示
CancellationSignal为主动取消生物识别的标识,在需要主动取消生物识别(关闭对话框)的时候,需要调用CancellationSignal的cancel()方法。重复显示对话框时不能复用同一个CancellationSignal,否则会抛出异常
AuthenticationCallback是验证结果的回调,包括验证成功、失败、取消等

			//创建一个生物识别的对话框,
            biometricPrompt=BiometricPrompt.Builder(this)
                .setTitle("生物识别标题")
                .setDescription("描述")
                .setNegativeButton("取消",mainExecutor, object : DialogInterface.OnClickListener {
                    override fun onClick(dialog: DialogInterface?, which: Int) {
                        Toast.makeText(this@MainActivity, "取消", Toast.LENGTH_SHORT).show()
                    }
                })
                .build()
            //实现AuthenticationCallback,在身份验证通过、失败、取消时,会调用相应的方法
            authenticationCallback=object : BiometricPrompt.AuthenticationCallback(){
                override fun onAuthenticationError(errorCode: Int, errString: CharSequence?) {
                    super.onAuthenticationError(errorCode, errString)
                    Log.i(TAG, "onAuthenticationError: ${errString}")
                }

                override fun onAuthenticationHelp(helpCode: Int, helpString: CharSequence?) {
                    super.onAuthenticationHelp(helpCode, helpString)
                    Log.i(TAG, "onAuthenticationHelp: ${helpString}")
                }

                override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult?) {
                    super.onAuthenticationSucceeded(result)
                    Log.i(TAG, "onAuthenticationSucceeded: ")
                }

                override fun onAuthenticationFailed() {
                    super.onAuthenticationFailed()
                    Log.i(TAG, "onAuthenticationFailed: ")
                }
            }

开始验证

//每次调用authenticate时都必须传入一个新的CancellationSignal对象,否则会抛出异常
cancellationSignal= CancellationSignal()
cancellationSignal.setOnCancelListener {
	//主动取消后的逻辑,调用cancellationSignal.cancel()时会走这里
}
biometricPrompt.authenticate(cancellationSignal,mainExecutor,authenticationCallback)
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:54:52  更:2021-09-20 15:55:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:13:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码