17

在启用来自 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支持库中的标准类,并且检查在其他设备上正常工作。

我不想将此权限添加到我的应用程序中 - 它似乎与指纹无关。

有没有人遇到过这样的事情?

4

2 回答 2

23

我在运行 Android 6.0.1 的三星 Galaxy S6 上遇到了同样的问题

问题是由调用引起的

fingerprintManager.hasEnrolledFingerprints()

我通过在之前添加一个检查硬件的调用来修复它:

fingerprintManager.isHardwareDetected()
    && mFingerprintManager.hasEnrolledFingerprints()

在没有可用硬件的情况下检查指纹似乎会在某些设备上导致此异常。

于 2016-07-04T08:25:45.940 回答
0

如果在升级手机操作系统后发生这种情况,请转到开发人员选项-> 通过 USB 验证应用程序-> 将其关闭,通过艰难的方式学习,希望它可以帮助一些宝贵的时间! 在此处输入图像描述

于 2021-08-31T18:07:01.140 回答