【发布时间】:2016-06-12 23:26:48
【问题描述】:
在启用来自 Android 6 用户的指纹时,我在我们的生产应用程序中看到了很多异常,我无法在我的任何本地三星设备上重现这些异常。堆栈跟踪是:
Message: SecurityException: Permission Denial: getCurrentUser() from pid=24365, uid=10229 requires android.permission.INTERACT_ACROSS_USERS
android.os.Parcel.readException in Parcel.java::1620
android.os.Parcel.readException in Parcel.java::1573
android.hardware.fingerprint.IFingerprintService$Stub$Proxy.hasEnrolledFingerprints in IFingerprintService.java::503
android.hardware.fingerprint.FingerprintManager.hasEnrolledFingerprints in FingerprintManager.java::762
android.support.v4.hardware.fingerprint.FingerprintManagerCompatApi23.a in SourceFile::39
android.support.v4.hardware.fingerprint.FingerprintManagerCompat$Api23FingerprintManagerCompatImpl.a in SourceFile::239
android.support.v4.hardware.fingerprint.FingerprintManagerCompat.a in SourceFile::66
这只是使用支持库中的标准FingerprintManagerCompat 类,并且检查在其他设备上正常工作。
我不想将此权限添加到我的应用中 - 它似乎与指纹无关。
有人遇到过这种情况吗?
【问题讨论】:
-
为了重现此问题,您需要注册指纹但没有屏幕锁定:滑动或无。否则,没有问题。无论哪种方式,这种情况有什么解决方案吗?
-
@Petrakeas 对于启用指纹但没有锁屏的场景,我已经检查了
KeyguardManager.isKeyguardSecure() -
在我的 S7 中,该问题仅在
isKeyguardSecure()返回 false 的情况下重现。即使在这种情况下,调用@David Medenjak 的答案中的 2 种方法也能解决问题。 -
@Petrakeas 我需要做一件额外的事情来重现这个问题。因此,首先您需要注册指纹并将屏幕锁定设置为滑动或无。然后我不得不重新启动设备。之后,我能够不断地重现这个问题。正如您提到的,David Medenjak 的回答解决了这个问题。
-
@Wirling 在我的华为设备上,如果我将屏幕锁定设置为滑动或无,那么它会删除所有注册的指纹。
标签: android android-fingerprint-api