2016-06-12 10 views
13

Ich sehe viele Ausnahmen in unserer Produktions-App, wenn Fingerabdrücke von Android 6-Benutzern aktiviert werden, die ich auf keinem meiner lokalen Samsung-Geräte reproduzieren kann. Die Stacktrace ist:Android Fingerprints: hasEnrolledFingerprints löst Ausnahme bei einigen Samsungs aus

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 

Dies ist nur die Standard FingerprintManagerCompat Klasse von der Support-Bibliothek verwenden, und die Prüfung korrekt funktioniert auf anderen Geräten.

Ich möchte diese Erlaubnis nicht meiner App hinzufügen - es scheint nichts mit Fingerabdrücken zu tun zu haben.

Hat jemand auf so etwas gestoßen?

+0

Um dieses Problem zu reproduzieren, müssen Sie Fingerabdrücke registriert haben, aber keine Bildschirmsperre: Swipe oder keine. Ansonsten gibt es kein Problem. Wie auch immer, gibt es eine Lösung für diesen Fall? – Petrakeas

+0

@Petrakeas für das Szenario von Fingerabdrücken aktiviert, aber kein Sperrbildschirm, habe ich bereits eine Überprüfung für 'KeyguardManager.isKeyguardSecure()' – kos

+0

In meinem S7 wurde das Problem nur reproduziert, falls 'isKeyguardSecure()' false zurückgegeben wurde. Der Aufruf der 2 Methoden in @David Medenjak löst das Problem selbst in diesem Fall. – Petrakeas

Antwort

11

ich über das gleiche Problem auf einem Samsung Galaxy S6 kam, mit Android 6.0.1

Das Problem wurde durch den Aufruf verursacht

fingerprintManager.hasEnrolledFingerprints() 

ich es behoben, indem ein Gespräch hinzugefügt wird für die Hardware zu überprüfen, bevor :

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

Die Überprüfung auf Fingerabdrücke ohne die verfügbare Hardware scheint diese Ausnahme auf einigen Geräten zu verursachen.

+2

Ich mache das genau und habe immer noch das Problem. Ich habe diese Information zu meiner Frage hinzugefügt. Danke für die Eingabe. – AnxGotta

+1

Ich habe diesen Check bereits installiert und sehe immer noch das Problem. – kos

+0

@kos Auf welchen Geräten sehen Sie das Problem? – Petrakeas

Verwandte Themen