在 API 29 中初始化 BiometricPrompt

initialize BiometricPrompt in API 29

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

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

我的主要问题是如何为目标 API 为 API 28 或 29 的项目初始化 BiometricPrompt class。

我正在尝试使用 FingerprintManagerCompat 来完成它,但它现在已被弃用。所以,请帮我创建 BiometricPrompt 实例 class.

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

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

这个新的 BiometricPrompt 更加高效,有助于显示标准对话框以指导用户完成身份验证过程、执行身份验证并将结果报告给应用程序。 BiometricPrompt class 有一个静态构建器 class 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)