首页 > 解决方案 > 在 API 29 中初始化 BiometricPrompt

问题描述

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

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

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

我正在尝试使用 FingerprintManagerCompat 来做,但现在已弃用。所以,请帮助我创建 BiometricPrompt 类的实例。

标签: androidauthenticationbiometricsandroid-biometric-prompt

解决方案


在我几乎 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)

推荐阅读