【问题标题】:Android Biometric hit FINGERPRINT_ERROR_LOCKOUT how to reset without waiting 30secondsAndroid生物识别命中FINGERPRINT_ERROR_LOCKOUT如何在不等待30秒的情况下重置
【发布时间】:2019-04-30 02:53:31
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android biometrics android-biometric-prompt


    【解决方案1】:

    不,您不能覆盖倒计时 - 这是Android Compatibility Definition Document 强制要求的要求,特别是7.3.10.1 C-1-5 部分:

    • [C-1-5] 必须在 5 次指纹验证错误试验后限制尝试次数至少 30 秒。

    【讨论】:

    • 我在 Google Playstore 中看到了一个现有的银行应用程序,当它达到最大尝试次数限制时,即 FINGERPRINT_ERROR_LOCKOUT。当用户输入正确的手机锁密码时,它将用户重定向到其手机锁模式(模式/密码),它直接继续到生物识别屏幕,没有更多的 30 秒。我认为有一种方法可以覆盖倒计时或所谓的重置,因为我提到的上述应用程序,当用户 5 次生物识别尝试失败时,它会引导用户输入锁屏模式密码,生物识别 30 秒后正确PIN 码已输入。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-23
      • 2016-02-26
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      相关资源
      最近更新 更多