Visualizzo molte eccezioni nella nostra app di produzione quando si abilitano le impronte digitali provenienti da utenti Android 6, che non riesco a riprodurre su nessuno dei dispositivi Samsung locali. Lo stacktrace è:Impronte digitali Android: hasEnrolledFingerprints fa scattare l'eccezione su alcuni 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
Questo è solo utilizzando la classe standard FingerprintManagerCompat
dalla libreria di supporto, e il controllo funziona correttamente su altri dispositivi.
Non voglio aggiungere questa autorizzazione alla mia app, sembra non avere nulla a che fare con le impronte digitali.
Qualcuno ha riscontrato qualcosa di simile?
Per riprodurre questo problema è necessario avere le impronte digitali registrate ma nessun blocco schermo: scorri o nessuno. Altrimenti, non ci sono problemi. Ad ogni modo, c'è qualche soluzione per questo caso? – Petrakeas
@Petrakeas per lo scenario delle impronte digitali abilitato ma nessuna schermata di blocco, ho già un controllo per 'KeyguardManager.isKeyguardSecure()' – kos
Nella mia S7 il problema è stato riprodotto solo nel caso in cui 'isKeyguardSecure()' restituisse false. Chiamare i 2 metodi nella risposta di @David Medenjak risolve il problema anche in questo caso. – Petrakeas