5 Schritte zur Implementierung der biometrischen Authentifizierung in Android

, Author

Ich hatte kürzlich die Gelegenheit, mit der neuen BiometricPrompt API-Funktion zu arbeiten, die von Google dieses Jahr veröffentlicht wurde. Während die Unterstützung der Fingerabdruck-Authentifizierung seit Android 6.0 verfügbar ist, verspricht das neue BiometricPrompt mehr Genauigkeit und ein einheitliches Sicherheitsniveau auf allen Geräten, auf denen unsere Anwendung läuft.

Nachdem ich vor kurzem die biometrische Authentifizierung in einer Android-App implementiert habe, dachte ich, ich würde einige der grundlegenden Schritte hervorheben, die erforderlich sind, um diese Funktion in einer Android-App zu implementieren.

So lasst uns beginnen!

AndroidManifest.xml

Schritt 2: Prüfen, ob das Gerät die biometrische Authentifizierung unterstützt

Speziell werden wir prüfen, ob die folgenden Bedingungen erfüllt sind:

  • Das Gerät läuft mit Android 6.0 oder höher
  • Das Gerät verfügt über einen Fingerabdrucksensor
  • Der Benutzer hat Ihrer App die Erlaubnis erteilt, auf den Fingerabdrucksensor zuzugreifen.
  • Der Benutzer hat mindestens einen Fingerabdruck auf seinem Gerät registriert.

Wir können eine separate util-Klasse erstellen, um zu prüfen, ob die oben genannten Bedingungen erfüllt sind:

Schritt 3: Anzeige des BiometricPrompt-Dialogs

Wenn die oben genannten Bedingungen geprüft sind, können wir prüfen, ob die Android-Version im Gerät Android P ist. Der biometrische Dialog wird nur in Android P unterstützt. Schauen wir uns das zuerst an.

Der folgende Code zeigt einen BiometricPrompt-Dialog an:

Wir können den BiometricPrompt-Builder verwenden:

  • setTitle() – Legen Sie den anzuzeigenden Titel fest (erforderlich)
  • setSubtitle() – Legen Sie den anzuzeigenden Untertitel fest (optional)
  • setDescription() – Legen Sie die anzuzeigende Beschreibung fest (optional)
  • setNegativeButton() – Legen Sie den Text für die negative Schaltfläche fest (erforderlich). Sie müssen auch eine Executor-Instanz und einen Click-Listener für die negative Schaltfläche bereitstellen.

Hinweis: Sie können das Symbol oder die Fehlermeldung, die im Dialog verwendet werden, nicht anpassen.

Ein typischer BiometricPrompt-Dialog

Schritt 4: Authentifizierungs-Callback behandeln

Als Nächstes verwenden wir den BiometricPrompt.AuthenticationCallback, um auf Authentifizierungsereignisse von den Benutzern zu warten. Es umfasst 4 Methoden:

onAuthenticationSucceeded

Wenn der Fingerabdruck erfolgreich mit einem der auf dem Gerät registrierten Fingerabdrücke abgeglichen wurde, wird dieser Callback ausgelöst. Ein AuthenticationResult-Objekt wird an den Callback übergeben.

onAuthenticationFailed

Wenn der Fingerabdruck mit keinem der auf dem Gerät registrierten Fingerabdrücke übereinstimmt, wird dieser Callback ausgelöst.

onAuthenticationError

Wenn ein nicht behebbarer Fehler aufgetreten ist und der Authentifizierungsprozess ohne Erfolg abgeschlossen wurde, wird dieser Callback ausgelöst. Der Callback wird mit einem Fehlercode versehen, um die Ursache des Fehlers zusammen mit der Fehlermeldung zu identifizieren. Die verschiedenen Arten von Fehlercodes, die auftreten können, sind:

  • BIOMETRIC_ERROR_LOCKOUT – Der Vorgang wurde abgebrochen, weil die API aufgrund zu vieler Versuche gesperrt ist.
  • BIOMETRIC_ERROR_LOCKOUT_PERMANENT – Der Vorgang wurde abgebrochen, weil BIOMETRIC_ERROR_LOCKOUT zu oft aufgetreten ist.
  • BIOMETRIC_ERROR_NO_SPACE – Der Vorgang kann nicht abgeschlossen werden, da nicht genügend Speicherplatz vorhanden ist, um den Vorgang abzuschließen.
  • BIOMETRIC_ERROR_TIMEOUT – Es ist eine Zeitüberschreitung aufgetreten, da die aktuelle Anforderung zu lange gelaufen ist.
  • BIOMETRIC_ERROR_UNABLE_TO_PROCESS – Der Sensor konnte das aktuelle Bild nicht verarbeiten.
  • BIOMETRIC_ERROR_USER_CANCELED – Der Benutzer hat den Vorgang abgebrochen.
  • BIOMETRIC_ERROR_VENDOR – Wenn es Bedingungen gibt, die nicht unter eine der oben genannten Kategorien fallen.
  • BIOMETRIC_ERROR_NO_BIOMETRICS – Der Benutzer hat keine biometrischen Daten im Gerät registriert.
  • BIOMETRIC_ERROR_CANCELED – Der Vorgang wurde abgebrochen, weil der biometrische Sensor nicht verfügbar ist.
  • BIOMETRIC_ERROR_HW_NOT_PRESENT – Das Gerät verfügt nicht über einen biometrischen Sensor.
  • BIOMETRIC_ERROR_HW_UNAVAILABLE – Die Gerätehardware ist nicht verfügbar.

onAuthenticationHelp

Diese Methode wird aufgerufen, wenn während des Authentifizierungsprozesses ein nicht schwerwiegender Fehler aufgetreten ist. Der Rückruf wird mit einem Hilfecode versehen, um die Fehlerursache zu identifizieren, zusammen mit einer Hilfemeldung. Die verschiedenen Arten von Hilfecodes, die auftreten können, sind:

  • BIOMETRIC_ACQUIRED_IMAGER_DIRTY – Das biometrische Bild war aufgrund vermuteter Verschmutzung des Sensors zu stark verrauscht.
  • BIOMETRIC_ACQUIRED_INSUFFICIENT – Das biometrische Bild war für die Verarbeitung zu stark verrauscht. Dies kann verschiedene Gründe haben, aber im Allgemeinen liegt es daran, dass das Bild nicht lesbar war.
  • BIOMETRIC_ACQUIRED_PARTIAL – Es wurde nur ein teilweises biometrisches Bild erkannt.
  • BIOMETRIC_ACQUIRED_TOO_FAST – Das biometrische Bild war unvollständig, weil der Benutzer seinen Finger zu schnell um den Sensor bewegt hat.
  • BIOMETRIC_ACQUIRED_TOO_SLOW – Das biometrische Bild war nicht lesbar, weil der Benutzer seinen Finger zu langsam um den Sensor bewegt hat.
Custom Biometric Callback class

Wenn Sie ein Android P-Gerät haben, dann ist es das!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.