0

Android 6.0 以上,不使用三星库。使用 android-google 生物识别库,当用户达到最大尝试次数时,它将抛出 FINGERPRINT_ERROR_LOCKOUT。

我知道 30 秒后允许用户再次尝试使用生物识别登录,但我想知道有什么办法可以避免等待 30 秒吗?正如我可以手动重置它,以便用户可以再次尝试使用生物识别登录,而无需等待 30 秒倒计时。

我在互联网上搜索过,大多数解决方案是等到 30 秒完成,然后让用户再次尝试生物识别登录。

为了开始收听,我调用 mFingerprintManager.authenticate(),为了取消我调用 mCancellationSignal.cancel(),如果它的状态仍然在 FINGERPRINT_ERROR_LOCKOUT(30 秒等待时间)下它不起作用,我想知道我可以通过什么方式绕过和重置,所以我不必等待 30 秒。

4

2 回答 2

3

不,您不能覆盖倒计时 - 这是Android Compatibility Definition Document规定的要求,特别是第7.3.10.1 C-1-5节:

  • [C-1-5] 必须在 5 次指纹验证错误尝试后限制尝试次数至少 30 秒。
于 2019-04-30T05:05:10.150 回答
0

您可以等待用户在锁屏上输入密码,也可以使用BiometricPrompt#setDeviceCredentialAllowedAPI 请求 pin/pattern/password。

当输入有效的 pin/pattern/password 时,Android 框架会重置锁定。

该 API 在框架 Q 和更早版本上可用,但在androidx.biometric支持锁屏/生物识别的所有 API 的库中都可用。

请求设备凭据的已弃用方法是,KeyguardManager#createConfirmDeviceCredentialIntent()检查RESULT_OKstartActivityForResult

于 2019-09-14T06:41:11.423 回答