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

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

github地址

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

项目演示

p1.jpg p2.jpg
p3.jpg p8.jpg
p5.jpg p6.jpg
p7.jpg p4.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()
    }
}
复制代码

猜你喜欢

转载自juejin.im/post/7047804532327677966