17

Android 6 ユーザーからの指紋を有効にすると、実稼働アプリで多くの例外が発生します。これは、ローカルの Samsung デバイスでは再現できません。スタックトレースは次のとおりです。

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を実行しているSamsung Galaxy S6で同じ問題に遭遇しました

問題は呼び出しによって引き起こされました

fingerprintManager.hasEnrolledFingerprints()

前にハードウェアをチェックする呼び出しを追加して修正しました。

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

ハードウェアを利用できない状態で指紋をチェックすると、一部のデバイスでこの例外が発生するようです。

于 2016-07-04T08:25:45.940 に答える