5 pași pentru a implementa autentificarea biometrică în Android

, Author

Am avut recent ocazia să lucrez cu noua funcție BiometricPrompt API lansată de Google în acest an. În timp ce suportul pentru autentificarea prin amprentă a fost disponibil încă de la Android 6.0, noul BiometricPrompt promite mai multă acuratețe și un nivel consistent de securitate pe toate dispozitivele care rulează aplicația noastră.

După ce am implementat recent autentificarea biometrică într-o aplicație Android, m-am gândit să evidențiez câțiva dintre pașii de bază necesari pentru a implementa această caracteristică într-o aplicație Android.

Așa că haideți să începem!

AndroidManifest.xml

Pasul 2: Verificați dacă dispozitivul suportă autentificarea biometrică

În mod specific, vom verifica dacă sunt îndeplinite următoarele condiții:

  • Dispozitivul rulează Android 6.0 sau o versiune mai recentă
  • Dispozitivul dispune de un senzor de amprentă digitală
  • Utilizatorul a acordat aplicației dvs. permisiunea de a accesa senzorul de amprentă digitală.
  • Utilizatorul a înregistrat cel puțin o amprentă digitală pe dispozitivul său.

Puteți crea o clasă utilitară separată pentru a verifica dacă sunt îndeplinite condițiile de mai sus:

Pasul 3: Afișarea dialogului BiometricPrompt

După ce sunt verificate condițiile de mai sus, putem verifica dacă versiunea android din dispozitiv este Android P. Dialogul Biometric este acceptat doar în Android P. Să ne uităm mai întâi la acest aspect.

Codul de mai jos este pentru a afișa un dialog BiometricPrompt:

Utilizând constructorul BiometricPrompt putem:

  • setTitle() – Setează titlul care urmează să fie afișat (Obligatoriu)
  • setSubtitle() – Setează subtitlul care urmează să fie afișat (Opțional)
  • setDescription() – Setează descrierea care urmează să fie afișată(Opțional)
  • setNegativeButton() – Setează textul pentru butonul negativ(Obligatoriu). De asemenea, trebuie să furnizați o instanță Executor și un ascultător de clic pentru butonul negativ.

Nota: Nu puteți personaliza pictograma sau mesajul de eroare care sunt utilizate în cadrul dialogului.

Un dialog BiometricPrompt tipic

Pasul 4: Tratarea autentificării Callback

În continuare folosim BiometricPrompt.AuthenticationCallback pentru a asculta evenimentele de autentificare de la utilizatori. Acesta include 4 metode:

onAuthenticationSucceeded

Când amprenta digitală se potrivește cu succes cu una dintre amprentele digitale înregistrate pe dispozitiv, atunci se va declanșa acest callback. Un obiect AuthenticationResult va fi transmis callback-ului.

onAuthenticationFailed

Când amprenta digitală nu se potrivește cu niciuna dintre amprentele digitale înregistrate pe dispozitiv, atunci acest callback va fi declanșat.

onAuthenticationError

Când a fost întâlnită o eroare irecuperabilă și procesul de autentificare s-a încheiat fără succes, atunci acest callback va fi declanșat. Callback-ul este prevăzut cu un cod de eroare pentru a identifica cauza erorii, împreună cu mesajul de eroare. Diferitele tipuri de coduri de eroare care pot apărea sunt:

  • BIOMETRIC_ERROR_LOCKOUT -Operațiunea a fost anulată deoarece API este blocată din cauza prea multor încercări.
  • BIOMETRIC_ERROR_LOCKOUT_PERMANENT -Operațiunea a fost anulată deoarece BIOMETRIC_ERROR_LOCKOUT a apărut de prea multe ori.
  • BIOMETRIC_ERROR_NO_SPACE – Operațiunea nu poate fi finalizată deoarece nu a mai rămas suficient spațiu de stocare pentru a finaliza operațiunea.
  • BIOMETRIC_ERROR_TIMEOUT – Timeout-ul apare deoarece cererea curentă a rulat prea mult timp.
  • BIOMETRIC_ERROR_UNABLE_TO_PROCESS – Senzorul nu a putut procesa imaginea curentă.
  • BIOMETRIC_ERROR_USER_CANCELED – Utilizatorul a anulat operațiunea.
  • BIOMETRIC_ERROR_VENDOR – Dacă există condiții care nu se încadrează într-una dintre categoriile de mai sus.
  • BIOMETRIC_ERROR_NO_BIOMETRICS – Utilizatorul nu are niciun element biometric înregistrat în dispozitiv.
  • BIOMETRIC_ERROR_CANCELED – Operațiunea a fost anulată deoarece senzorul biometric nu este disponibil.
  • BIOMETRIC_ERROR_HW_NOT_PRESENT – Dispozitivul nu are un senzor biometric.
  • BIOMETRIC_ERROR_HW_UNAVAILABLE – Hardware-ul dispozitivului nu este disponibil.

onAuthenticationHelp

Această metodă este apelată atunci când în timpul procesului de autentificare a apărut o eroare non-fatală. Callback-ul va fi furnizat cu un cod de ajutor pentru a identifica cauza erorii, împreună cu un mesaj de ajutor. Diferitele tipuri de coduri de ajutor care pot apărea sunt:

  • BIOMETRIC_ACQUIRED_IMAGER_DIRTY – Imaginea biometrică a fost prea zgomotoasă din cauza presupusei murdării de pe senzor.
  • BIOMETRIC_ACQUIRED_INSUFFICIENT – Imaginea biometrică a fost prea zgomotoasă pentru a fi procesată. Acest lucru se poate datora unei varietăți de motive, dar în general se datorează faptului că imaginea nu a fost lizibilă.
  • BIOMETRIC_ACQUIRED_PARTIAL – A fost detectată doar o imagine biometrică parțială.
  • BIOMETRIC_ACQUIRED_TOO_FAST – Imaginea biometrică a fost incompletă deoarece utilizatorul și-a mișcat degetul în jurul senzorului prea repede.
  • BIOMETRIC_ACQUIRED_TOO_SLOW – Imaginea biometrică a fost ilizibilă din cauza lipsei de mișcare a utilizatorului în jurul senzorului.
Custom Biometric Callback class

Dacă aveți un dispozitiv Android P, atunci asta este!

Lasă un răspuns

Adresa ta de email nu va fi publicată.