È necessario utilizzare il metodo isHardwareDetected
nella classe FingerprintManager
.
Determinare se l'hardware di impronte digitali è presente e funzionante. Restituisce true se l'hardware è presente e funzionale, falso altrimenti.
// Check if we're running on Android 6.0 (M) or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//Fingerprint API only available on from Android 6.0 (M)
FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
if (!fingerprintManager.isHardwareDetected()) {
// Device doesn't support fingerprint authentication
} else if (!fingerprintManager.hasEnrolledFingerprints()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
}
Non dimenticate di aggiungere il permesso di accedere alle funzioni di impronte digitali in AndroidManifest:
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
Con libreria di supporto
Se non si desidera controllare Build.VERSION , è anche possibile controllare sul dispositivo inferiore a Android 6.0 con Libreria di supporto
Aggiungere dipendenza:
compile "com.android.support:support-v4:23.0.0"
E utilizzare FingerprintManagerCompat
classe come questa:
FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from(context);
if (!fingerprintManagerCompat.isHardwareDetected()) {
// Device doesn't support fingerprint authentication
} else if (!fingerprintManagerCompat.hasEnrolledFingerprints()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
C'è un modo per evitare che l'applicazione da ottenere elencati playstore nel caso in cui l'hardware non si trova o non è compatibile con il applicazione? – Nirav
È una nuova domanda quindi per favore aggiungi una domanda e ti risponderò – LaurentY
Salvato il mio giorno..il post meraviglioso @LaurentY –