我正在实施生物识别技术,如果用户不想要/拥有生物识别技术,我希望能够回退到使用 PIN 码。
问题是,当用户选择“使用 PIN”,输入他们的 PIN,并验证两个不同的回调时,会触发:
第一个:onAuthenticationSucceeded
这是预期的。第二个:onAuthenticationError
与BiometricConstants.ERROR_USER_CANCELED
。
为什么输入 PIN 而不是生物识别会触发 ERROR_USER_CANCELED?我通过完成我的活动来处理这个错误,这不是我在这个流程中想要的。我这样做是因为当用户在对话框之外点击时我想关闭应用程序并且在这种情况下会触发同样的错误(尽管有这个修复)。
有没有办法区分故意取消对话框(通过后退按钮或在对话框外点击)和输入 PIN?
这是我的PromptInfo
:
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle(getString(R.string.lock_title))
.setSubtitle(getString(R.string.lock_summary))
.setConfirmationRequired(false)
.setDeviceCredentialAllowed(true)
.build()
在装有 Android 10 的 Pixel 2 上进行测试。使用版本"androidx.biometric:biometric:1.0.1"
。谢谢!