当启用来自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
类,并且该检查在其他设备上可以正常工作。
我不想将此权限添加到我的应用程序中-它似乎与指纹无关。
有人遇到过类似的情况吗?
KeyguardManager.isKeyguardSecure()
的方法。 - kosisKeyguardSecure()
返回false时才会出现问题。调用@David Medenjak答案中的2个方法即可解决此问题,即使在这种情况下也是如此。 - Petrakeas