设备锁定时的指纹 API 行为
Fingerprint API behavior when device is locked
我有一个应用程序,其服务可以在设备锁定时启动,并且此服务正在启动我的应用程序的 activity(即使设备已锁定)。在此 activity 中,我使用 Google 指纹 API 来识别用户。我用 Android 6.0.1(Samsung Galaxy S6 和 Google LG Nexus 5X)在两台设备上进行了测试,结果不同:
- Samsung Galaxy S6:在 AuthenticationCallback
的 onAuthenticationError 方法中出现错误 5 或 FINGERRINT_ERROR_CANCELED (https://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.html#FINGERPRINT_ERROR_CANCELED)
- Nexus 5X:没有报错,但是无法进行认证。无论用户做什么(使用不同的手指、松开手指太快……),都不会出现错误。用户只能取消对话框。
我的问题是:
- 有人知道为什么会出现这些行为差异吗?
- 有谁知道我们是否可以在设备锁定的情况下使用这种身份验证方法?
相同的 service/activity/authentication 工作流程在两台设备都解锁时以及应用程序处于 background/foreground.
时完美运行
谢谢!
在调用身份验证方法之前引入 1 秒的延迟(handler.postDelayed),对我有用
我有一个应用程序,其服务可以在设备锁定时启动,并且此服务正在启动我的应用程序的 activity(即使设备已锁定)。在此 activity 中,我使用 Google 指纹 API 来识别用户。我用 Android 6.0.1(Samsung Galaxy S6 和 Google LG Nexus 5X)在两台设备上进行了测试,结果不同:
- Samsung Galaxy S6:在 AuthenticationCallback 的 onAuthenticationError 方法中出现错误 5 或 FINGERRINT_ERROR_CANCELED (https://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.html#FINGERPRINT_ERROR_CANCELED)
- Nexus 5X:没有报错,但是无法进行认证。无论用户做什么(使用不同的手指、松开手指太快……),都不会出现错误。用户只能取消对话框。
我的问题是:
- 有人知道为什么会出现这些行为差异吗?
- 有谁知道我们是否可以在设备锁定的情况下使用这种身份验证方法?
相同的 service/activity/authentication 工作流程在两台设备都解锁时以及应用程序处于 background/foreground.
时完美运行谢谢!
在调用身份验证方法之前引入 1 秒的延迟(handler.postDelayed),对我有用