5 steg för att implementera biometrisk autentisering i Android

, Author

Jag fick nyligen chansen att arbeta med den nya API-funktionen BiometricPrompt som Google släppte i år. Stöd för fingeravtrycksautentisering har funnits tillgängligt sedan Android 6.0, men den nya BiometricPrompt lovar större noggrannhet och en konsekvent säkerhetsnivå på alla enheter som kör vår applikation.

Med tanke på att ha implementerat biometrisk autentisering i en android-app nyligen tänkte jag lyfta fram några av de grundläggande steg som krävs för att implementera den här funktionen i en android-app.

Så låt oss börja!

AndroidManifest.xml

Steg 2: Kontrollera om enheten har stöd för biometrisk autentisering

Specifikt kommer vi att kontrollera om följande villkor är uppfyllda:

  • Enheten kör Android 6.0 eller högre
  • Enheten har en fingeravtryckssensor
  • Användaren har gett din app tillstånd att få tillgång till fingeravtryckssensorn.
  • Användaren har registrerat minst ett fingeravtryck på sin enhet.

Vi kan skapa en separat util-klass för att kontrollera om ovanstående villkor är uppfyllda:

Steg 3: Visa dialogrutan BiometricPrompt

När ovanstående villkor är kontrollerade kan vi kontrollera om Android-versionen i enheten är Android P. Den biometriska dialogrutan stöds endast i Android P. Låt oss ta en titt på det först.

Nedanstående kod visar en biometricPrompt-dialog:

Med hjälp av BiometricPrompt-byggaren kan vi:

  • setTitle() – Ställ in titeln som ska visas (Krävs)
  • setSubtitle() – Ställ in undertiteln som ska visas (Valfritt)
  • setDescription() – Ställ in beskrivningen som ska visas (Valfritt)
  • setNegativeButton() – Ställ in texten för den negativa knappen (Krävs). Du måste också tillhandahålla en exekutorinstans och en klicklyssnare för den negativa knappen.

Notera: Du kan inte anpassa ikonen eller felmeddelandet som används i dialogrutan.

En typisk BiometricPrompt-dialog

Steg 4: Hantera autentiserings-Callback

Nästan använder vi BiometricPrompt.AuthenticationCallback för att lyssna efter autentiseringshändelser från användarna. Den innehåller fyra metoder:

onAuthenticationSucceded

När fingeravtrycket har matchats med ett av de fingeravtryck som registrerats på enheten utlöses denna callback. Ett AuthenticationResult-objekt skickas till callbacken.

onAuthenticationFailed

När fingeravtrycket inte stämmer överens med något av de fingeravtryck som registrerats på enheten utlöses denna callback.

onAuthenticationError

När ett fel som inte kan återställas har uppstått och autentiseringsprocessen har slutförts utan framgång utlöses denna callback. Callbacken förses med en felkod för att identifiera orsaken till felet, tillsammans med felmeddelandet. De olika typerna av felkoder som kan förekomma är:

  • BIOMETRIC_ERROR_LOCKOUT – Operationen avbröts eftersom API:et är låst på grund av för många försök.
  • BIOMETRIC_ERROR_LOCKOUT_PERMANENT – Operationen avbröts eftersom BIOMETRIC_ERROR_LOCKOUT uppstod för många gånger.
  • BIOMETRIC_ERROR_NO_SPACE – Operationen kan inte slutföras eftersom det inte finns tillräckligt med lagringsutrymme kvar för att slutföra operationen.
  • BIOMETRIC_ERROR_TIMEOUT – Timeout inträffar eftersom den aktuella begäran har pågått för länge.
  • BIOMETRIC_ERROR_UNABLE_TO_PROCESS – Sensorn kunde inte behandla den aktuella bilden.
  • BIOMETRIC_ERROR_USER_CANCELED – Användaren avbröt operationen.
  • BIOMETRIC_ERROR_VENDOR – Om det finns förhållanden som inte faller under någon av ovanstående kategorier.
  • BIOMETRIC_ERROR_NO_BIOMETRICS – Användaren har inga biometriska data registrerade i enheten.
  • BIOMETRIC_ERROR_CANCELED – Åtgärden avbröts eftersom den biometriska sensorn inte är tillgänglig.
  • BIOMETRIC_ERROR_HW_NOT_PRESENT – Enheten har ingen biometrisk sensor.
  • BIOMETRIC_ERROR_HW_UNAVAILABLE – Enhetens maskinvara är otillgänglig.

onAuthenticationHelp

Den här metoden anropas när ett icke-fatalt fel har inträffat under autentiseringsprocessen. Callbacken kommer att förses med en hjälpkod för att identifiera orsaken till felet, tillsammans med ett hjälpmeddelande. De olika typerna av hjälpkoder som kan förekomma är:

  • BIOMETRIC_ACQUIRED_IMAGER_DIRTY – Den biometriska bilden var för högljudd på grund av misstänkt smuts på sensorn.
  • BIOMETRIC_ACQUIRED_INSUFFICIENT – Den biometriska bilden var för högljudd för att behandlas. Detta kan bero på en mängd olika orsaker, men i allmänhet beror det på att bilden inte var läsbar.
  • BIOMETRIC_ACQUIRED_PARTIAL – Endast en partiell biometrisk bild upptäcktes.
  • BIOMETRIC_ACQUIRED_TOO_FAST – Den biometriska bilden var ofullständig på grund av att användaren förflyttade fingret runt sensorn för snabbt.
  • BIOMETRIC_ACQUIRED_TOO_SLOW – Den biometriska bilden var oläsbar på grund av att användaren inte rörde sig runt sensorn.
Anpassad biometrisk callback-klass

Om du har en Android P-enhet är det dags för det!

Lämna ett svar

Din e-postadress kommer inte publiceras.