# BiometricHelper **Repository Path**: android2014/BiometricHelper ## Basic Information - **Project Name**: BiometricHelper - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-19 - **Last Updated**: 2024-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: 面部指纹识别, BiometricHelper ## README # BiometricHelper-指纹识别,面部识别,自定义弹窗,用法超级简单 ## [github地址](https://github.com/ITxiaoguang/BiometricHelper) [码云地址](https://gitee.com/ITxiaoguang/BiometricHelper) # 基于安卓原生指纹识别和面部识别的工具类,可按需求自定义弹窗 ## 项目演示 ## 截图:
## 特点功能: - 支持系统弹窗 - 支持采用SDK弹窗 - 支持采用自定义弹窗
| 小于Android 6 Api 小于 23 | | --- | | 不支持|
| Android 6到8 Api 23到27 | 支持SDK弹窗/自定义弹窗 | 支持系统弹窗 | 支持面部识别 | | --- | --- | -- | -- | | 不开启enableAndroidP | true | false | false | | 开启enableAndroidP |true | false | false |
| Android 9 Api 28 | 支持SDK弹窗/自定义弹窗 | 支持系统弹窗 | 支持面部识别 | | --- | --- | -- | -- | | 不开启enableAndroidP | true | false | false | | 开启enableAndroidP |false | true | false |
| 大于等于 Android 10 | 支持SDK弹窗/自定义弹窗 | 支持系统弹窗 | 支持面部识别 | | --- | --- | -- | -- | | 不开启enableAndroidP | true | false | false | | 开启enableAndroidP |false | true | true | ### FAQ - 为什么接入SDK没有出现面部识别弹窗? - 很多手机没有面部解锁功能 - 没有开启面部解锁功能 - 有面部解锁且开启面部解锁也不一定有识别弹窗出现 - 目前知道三星S21是可以面部识别,你有更多机型可以的调起面部识别弹窗的话可以留言 - 为什么接入SDK没出现指纹识别? - 手机不支持指纹解锁或没开启指纹解锁功能 ## 如何添加 ### Gradle添加: #### 1.在Project的`build.gradle`中添加仓库地址 ``` gradle allprojects { repositories { ... maven { url "https://jitpack.io" } } } ``` #### 2.在Module目录下的`build.gradle`中添加依赖 [![](https://jitpack.io/v/ITxiaoguang/BiometricHelper.svg)](https://jitpack.io/#ITxiaoguang/BiometricHelper) ``` gradle dependencies { implementation 'com.github.ITxiaoguang:BiometricHelper:xxx' } ``` ## 使用方法: ### 需要指纹权限 ```xml ``` ### 主要调用代码 ``` kotlin private fun showDialog(enableAndroidP: Boolean) { BiometricPromptManager.Builder(this) // 启动安卓自带弹窗 default true,设置成false面部识别不生效 .enableAndroidP(enableAndroidP) .setCallback(fingerprintCallback) .title("请验证已录入的指纹/面容") .cancelText("取消") // 以下设置 enableAndroidP false 安卓8以上手机才有效 .setImgRes(R.drawable.ic_fingerprint) .failTitle("未能识别指纹") .failContent("再试一次") // 自定义弹窗(采用工厂模式,继承IBiometricDialog) //.setCustomDialog(BiometricDialogCustomImpl()) .build() } private val fingerprintCallback: FingerprintCallback = object : FingerprintCallback { @RequiresApi(api = Build.VERSION_CODES.M) override fun onSucceeded23(result: FingerprintManagerCompat.AuthenticationResult?) { Toast.makeText(this@MainActivity, "success", Toast.LENGTH_SHORT).show() } @RequiresApi(api = Build.VERSION_CODES.P) override fun onSucceeded28(result: androidx.biometric.BiometricPrompt.AuthenticationResult?) { Toast.makeText(this@MainActivity, "success", Toast.LENGTH_SHORT).show() } override fun onFailed() { Toast.makeText(this@MainActivity, "onFailed", Toast.LENGTH_SHORT).show() } override fun onError(errString: CharSequence?) { Toast.makeText(this@MainActivity, "onError " + errString, Toast.LENGTH_SHORT).show() } override fun onCancel() { Toast.makeText(this@MainActivity, "onCancel", Toast.LENGTH_SHORT).show() } } /** * onPause生命周期关闭自定义弹窗 */ override fun onPause() { super.onPause() manager?.onActivityPause() } /** * onDestroy生命周期关闭自定义弹窗 */ override fun onDestroy() { super.onDestroy() manager?.onActivityDestroy() } ```