Android 6.0以上版本,未使用Samsung库。使用android-google生物识别库,当用户达到最大尝试次数时,它将抛出FINGERPRINT_ERROR_LOCKOUT。
我知道30秒钟后允许用户再次尝试使用生物识别技术进行登录,但是我想知道有什么方法可以避免等待30秒钟吗?正如我可以手动重置它一样,以便用户可以再次尝试使用生物识别技术进行登录,而无需等待30秒的倒计时。
我已经在互联网上进行搜索,大多数解决方案是等到30秒后再让用户再次尝试生物识别登录。
对于开始收听,我调用mFingerprintManager.authenticate(),对于取消我调用mCancellationSignal.cancel(),如果它的状态仍然在FINGERPRINT_ERROR_LOCKOUT(等待30秒)下,则它不起作用,我想知道我该怎么做可以绕过并重置,因此我不必等待30秒。
答案 0 :(得分:3)
否,您无法覆盖倒数计时-这是Android Compatibility Definition Document(特别是7.3.10.1 C-1-5部分)规定的要求:
- [C-1-5]在进行五次错误的指纹验证试验后,必须尝试至少进行30秒的速率限制。
答案 1 :(得分:0)
您可以等待用户在锁屏上输入密码,也可以使用BiometricPrompt#setDeviceCredentialAllowed
API要求输入密码/图案/密码。
输入有效的密码/图案/密码后,Android Framework会重置锁定。
该API在Q版或更早版本的框架中可用,但在androidx.biometric
库中对于支持锁屏/生物识别的所有API均可用。
不推荐使用的用于请求设备凭据的方法是KeyguardManager#createConfirmDeviceCredentialIntent()
,在RESULT_OK
中检查startActivityForResult