我正在尝试使用API级别29的BioMetricPrompt在我的应用程序中添加指纹验证。
为此,我遵循一些代码,但是大多数可用代码都用于较低级别的API。在API 29中,与低级API相比,BiometricPrompt类有很大的变化。
我的主要查询是如何针对目标API为API 28或29的项目初始化BiometricPrompt类。
我正在尝试使用FingerprintManagerCompat进行此操作,但现在不建议使用。因此,请帮助我创建BiometricPrompt类的实例。
答案 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)