阅读 502

Android 指纹识别,面部识别,自定义弹窗 BiometricHelper

BiometricHelper-指纹识别,面部识别,自定义弹窗,用法超级简单

github地址

基于安卓原生指纹识别和面部识别的工具类,可按需求自定义弹窗

项目演示

p1.jpgp2.jpg
p3.jpgp8.jpg
p5.jpgp6.jpg
p7.jpgp4.jpg

特点功能:

  • 支持系统弹窗

  • 支持采用SDK弹窗

  • 支持采用自定义弹窗

如何添加

Gradle添加:

1.在Project的build.gradle中添加仓库地址

allprojects {   repositories {      ...      maven { url "https://jitpack.io" }   } } 复制代码

2.在Module目录下的build.gradle中添加依赖

dependencies {     implementation 'com.github.ITxiaoguang:BiometricHelper:xxx' } 复制代码

使用方法:

需要指纹权限

<uses-permission android:name="android.permission.USE_FINGERPRINT" /> 复制代码

主要调用代码

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()     if (null != manager) {         manager!!.onActivityPause()     } } /**  * onDestroy生命周期关闭自定义弹窗  */ override fun onDestroy() {     super.onDestroy()     if (null != manager) {         manager!!.onActivityDestroy()     } }


作者:xiaoguang
链接:https://juejin.cn/post/7047804532327677966


文章分类
ANDROID
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐