我已经在应用程序中实现了androidx BiometricPrompt,但遇到了一个问题,该问题以一种非常令人不安的方式影响了UX。
该应用程序具有一个固定键盘屏幕,如果启用了该屏幕,则会弹出一个BiometricPrompt,以使身份验证更加舒适。问题是,当应用程序置于后台,然后又回到前台时,提示将显示身份验证失败的动画,而没有任何异常。
我认为其原因是,当应用程序进入后台时,提示会以取消错误结束,并且在下次显示该动画时,会显示上一次取消的动画。我真的没有看到此功能的优势,因为这一定是很常见的情况。
每次活动恢复时,我都试图重新实例化提示,但这并没有影响这种行为。提示和提示信息通过以下方式实例化:
prompt = BiometricPrompt(this, mainExecutor, object: BiometricPrompt.AuthenticationCallback(){
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
authenticateFingerprint()
}
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
if(errorCode==BiometricPrompt.ERROR_NEGATIVE_BUTTON){
biometryCancelled = true
}
}
override fun onAuthenticationFailed() {
}
})
promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("title")
.setNegativeButtonText("cancel")
.build()
prompt.authenticate(promptInfo)
我已经在这个问题上坚持了很长时间,我将不胜感激。