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

Android 指纹识别,面部识别,自定义弹窗 BiometricHelperBiometricHelper-指纹识别,面部识别,自定义弹窗。基于安卓原生指纹识别和面部识别的工具类,可按需求自定义弹窗,用法超级简单。

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

github地址 码云地址

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

项目演示

p1.jpg p2.jpg
p3.jpg p8.jpg
p5.jpg p6.jpg
p7.jpg p4.jpg

特点功能:

  • 支持系统弹窗
  • 支持采用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中添加仓库地址

allprojects {
  repositories {
     ...
     maven { url "https://jitpack.io" }
  }
}

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

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

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()
    }
}

今天的文章Android 指纹识别,面部识别,自定义弹窗 BiometricHelper分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/19012.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注