在API 29中初始化BiometricPrompt

时间:2019-08-10 09:56:02

标签: android authentication biometrics android-biometric-prompt

我正在尝试使用API​​级别29的BioMetricPrompt在我的应用程序中添加指纹验证。

为此,我遵循一些代码,但是大多数可用代码都用于较低级别的API。在API 29中,与低级API相比,BiometricPrompt类有很大的变化。

我的主要查询是如何针对目标API为API 28或29的项目初始化BiometricPrompt类。

我正在尝试使用FingerprintManagerCompat进行此操作,但现在不建议使用。因此,请帮助我创建BiometricPrompt类的实例。

1 个答案:

答案 0 :(得分:0)

在将近24小时没有得到任何反馈和研究之后,经过对不同资源的研究,我找到了解决自己问题的方法。

因此,androidx.core.hardware.fingerprint.FingerprintManagerCompat在新可用的API 28和29中已被弃用,取而代之的是,还有另一个可用的类androidx.biometric.BiometricPrompt

此新的BiometricPrompt效率更高,有助于显示标准对话框,以指导用户完成身份验证过程,执行身份验证并将结果报告给应用程序。 BiometricPrompt类具有静态构建器类PromptInfo,可用于配置和创建BiometricPrompt实例。

因此,该解决方案是根据新提供的API创建BioMetricPrompt实例:

val biometricPrompt = BiometricPrompt.PromptInfo.Builder()
            .setTitle("Biometric Demo")
            .setSubtitle("Authentication is required to continue")
            .setDescription("This app uses biometric authentication to protect your data.")
            .setNegativeButtonText("Cancel")
            .build()

BiometricPrompt(this.activity!!, getMainExecutor(this.activity), getAuthenticationCallback()).authenticate(biometricPrompt)