我正在开发一个需要指纹才能打开 Activity 的 Android 应用程序。我刚刚注意到,当我使用指纹解锁手机时,在我的应用中扫描指纹的尝试次数仅为 4 次。
例如:
手机已解锁
使用指纹解锁手机
打开我的指纹应用
无法尝试扫描指纹超过 4 次
另一种情况:
指纹应用程序已打开
仅接受 5 次尝试,应用将不再尝试扫描指纹
等待一段时间,再次,在一段时间内只接受5次尝试
有解决方法吗?
我正在开发一个需要指纹才能打开 Activity 的 Android 应用程序。我刚刚注意到,当我使用指纹解锁手机时,在我的应用中扫描指纹的尝试次数仅为 4 次。
例如:
手机已解锁
使用指纹解锁手机
打开我的指纹应用
无法尝试扫描指纹超过 4 次
另一种情况:
指纹应用程序已打开
仅接受 5 次尝试,应用将不再尝试扫描指纹
等待一段时间,再次,在一段时间内只接受5次尝试
有解决方法吗?
我做了一些研究,发现了Android 6.0 Compatibility Definition Document。
这在指纹传感器部分中有说明:
具有安全锁屏的设备实现应该包括指纹传感器。如果设备实现包含指纹传感器并具有供第三方开发人员使用的相应 API,则:
在 5 次指纹验证错误尝试后,必须限制尝试至少 30 秒。
所以..我想目前没有解决方法。
在搜索我遇到的相同问题时遇到了这个 stackoverflow。
无论如何,使用最新的 API BiometricPrompt,我们现在可以通过覆盖 AuthenticationCallback 来自定义行为
BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationError(
errorCode: Int,
errString: CharSequence
) {
super.onAuthenticationError(errorCode, errString)
}
override fun onAuthenticationSucceeded(
result: BiometricPrompt.AuthenticationResult
) {
super.onAuthenticationSucceeded(result)
}
// called when an attempt to authenticate with biometrics fails
// i.e. invalid fingerprint
override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
// keep track of a counter here and decide when to dismiss the dialog
biometricPrompt?.cancelAuthentication()
}
}