5 passi per implementare l’autenticazione biometrica in Android

, Author

Di recente ho avuto la possibilità di lavorare con la nuova funzione API BiometricPrompt rilasciata da Google quest’anno. Mentre il supporto per l’autenticazione delle impronte digitali è disponibile da Android 6.0, il nuovo BiometricPrompt promette una maggiore precisione e un livello coerente di sicurezza su tutti i dispositivi che eseguono la nostra applicazione.

Avendo implementato l’autenticazione biometrica in un’applicazione Android di recente, ho pensato di evidenziare alcuni dei passaggi fondamentali necessari per implementare questa funzione in un’applicazione Android.

Comincia!

AndroidManifest.xml

Passo 2: Controllare se il dispositivo supporta l’autenticazione biometrica

Specificamente, controlleremo se le seguenti condizioni sono soddisfatte:

  • Il dispositivo esegue Android 6.0 o superiore
  • Il dispositivo dispone di un sensore di impronte digitali
  • L’utente ha concesso alla tua applicazione il permesso di accedere al sensore di impronte digitali.
  • L’utente ha registrato almeno un’impronta digitale sul proprio dispositivo.

Possiamo creare una classe util separata per controllare se le condizioni di cui sopra sono soddisfatte:

Passo 3: Visualizzare la finestra di dialogo BiometricPrompt

Una volta verificate le condizioni di cui sopra, possiamo controllare se la versione di Android nel dispositivo è Android P. La finestra di dialogo Biometric è supportata solo in Android P. Diamo prima un’occhiata a questo.

Il seguente codice serve a visualizzare una finestra di dialogo BiometricPrompt:

Utilizzando il costruttore BiometricPrompt possiamo:

  • setTitle() – Impostare il titolo da visualizzare (Richiesto)
  • setSubtitle() – Impostare il sottotitolo da visualizzare (Opzionale)
  • setDescription() – Impostare la descrizione da visualizzare (Opzionale)
  • setNegativeButton() – Impostare il testo del pulsante negativo (Richiesto). Devi anche fornire un’istanza di Executor e un ascoltatore di click per il pulsante negativo.

Nota: Non puoi personalizzare l’icona o il messaggio di errore che sono usati all’interno della finestra di dialogo.

Una tipica finestra di dialogo BiometricPrompt

Step 4: Gestire l’autenticazione Callback

In seguito usiamo BiometricPrompt.AuthenticationCallback per ascoltare gli eventi di autenticazione degli utenti. Include 4 metodi:

onAuthenticationSucceeded

Quando l’impronta digitale è stata abbinata con successo ad una delle impronte digitali registrate sul dispositivo, allora questo callback verrà attivato. Un oggetto AuthenticationResult viene passato alla callback.

onAuthenticationFailed

Quando l’impronta digitale non corrisponde a nessuna delle impronte digitali registrate sul dispositivo, allora viene attivata questa callback.

onAuthenticationError

Quando si è verificato un errore irreversibile e il processo di autenticazione è stato completato senza successo, allora viene attivata questa callback. La callback è dotata di un codice di errore per identificare la causa dell’errore, insieme al messaggio di errore. I diversi tipi di codici di errore che possono verificarsi sono:

  • BIOMETRIC_ERROR_LOCKOUT – L’operazione è stata annullata perché l’API è bloccata a causa di troppi tentativi.
  • BIOMETRIC_ERROR_LOCKOUT_PERMANENT – L’operazione è stata annullata perché BIOMETRIC_ERROR_LOCKOUT è avvenuta troppe volte.
  • BIOMETRIC_ERROR_NO_SPACE – L’operazione non può essere completata perché non c’è abbastanza memoria rimanente per completare l’operazione.
  • BIOMETRIC_ERROR_TIMEOUT – Il timeout si è verificato perché la richiesta corrente è stata eseguita troppo a lungo.
  • BIOMETRIC_ERROR_UNABLE_TO_PROCESS – Il sensore non è riuscito ad elaborare l’immagine corrente.
  • BIOMETRIC_ERROR_USER_CANCELED – L’utente ha annullato l’operazione.
  • BIOMETRIC_ERROR_VENDOR – Se ci sono condizioni che non rientrano in una delle categorie precedenti.
  • BIOMETRIC_ERROR_NO_BIOMETRICS – L’utente non ha alcun dato biometrico registrato nel dispositivo.
  • BIOMETRIC_ERROR_CANCELED – L’operazione è stata annullata perché il sensore biometrico non è disponibile.
  • BIOMETRIC_ERROR_HW_NOT_PRESENT – Il dispositivo non ha un sensore biometrico.
  • BIOMETRIC_ERROR_HW_UNAVAILABLE – L’hardware del dispositivo non è disponibile.

onAuthenticationHelp

Questo metodo viene chiamato quando si è verificato un errore non fatale durante il processo di autenticazione. Alla callback verrà fornito un codice di aiuto per identificare la causa dell’errore, insieme a un messaggio di aiuto. I diversi tipi di codici di aiuto che possono verificarsi sono:

  • BIOMETRIC_ACQUIRED_IMAGER_DIRTY – L’immagine biometrica era troppo rumorosa a causa di sospetto sporco sul sensore.
  • BIOMETRIC_ACQUIRED_INSUFFICIENT – L’immagine biometrica era troppo rumorosa da elaborare. Questo potrebbe essere dovuto a una varietà di ragioni, ma generalmente questo è perché l’immagine non era leggibile.
  • BIOMETRIC_ACQUIRED_PARTIAL – È stata rilevata solo un’immagine biometrica parziale.
  • BIOMETRIC_ACQUIRED_TOO_FAST – L’immagine biometrica era incompleta perché l’utente ha mosso il dito intorno al sensore troppo velocemente.
  • BIOMETRIC_ACQUIRED_TOO_SLOW – L’immagine biometrica era illeggibile a causa della mancanza di movimento dell’utente intorno al sensore.
Custom Biometric Callback class

Se hai un dispositivo Android P, allora è così!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.