5 kroków do wdrożenia uwierzytelniania biometrycznego w systemie Android

, Author

Miałem ostatnio okazję pracować z nową funkcją API BiometricPrompt wydaną przez Google w tym roku. Podczas gdy wsparcie uwierzytelniania odcisków palców było dostępne od Androida 6.0, nowy BiometricPrompt obiecuje większą dokładność i spójny poziom bezpieczeństwa na wszystkich urządzeniach, na których działa nasza aplikacja.

Zaimplementowawszy ostatnio uwierzytelnianie biometryczne w aplikacji androidowej, pomyślałem, że podkreślę niektóre z podstawowych kroków wymaganych do wdrożenia tej funkcji w aplikacji androidowej.

Zacznijmy więc!

AndroidManifest.xml

Krok 2: Sprawdź, czy urządzenie obsługuje uwierzytelnianie biometryczne

Specjalnie, zamierzamy sprawdzić, czy następujące warunki są spełnione:

  • Urządzenie działa z systemem Android 6.0 lub nowszy
  • Urządzenie posiada czujnik linii papilarnych
  • Użytkownik udzielił Twojej aplikacji pozwolenia na dostęp do czujnika linii papilarnych.
  • Użytkownik zarejestrował co najmniej jeden odcisk palca na swoim urządzeniu.

Możemy utworzyć osobną klasę util, aby sprawdzić, czy powyższe warunki są spełnione:

Krok 3: Wyświetl okno dialogowe BiometricPrompt

Po sprawdzeniu powyższych warunków możemy sprawdzić, czy wersja androida w urządzeniu to Android P. Okno dialogowe Biometric jest obsługiwane tylko w systemie Android P. Przyjrzyjmy się temu najpierw.

Poniższy kod ma za zadanie wyświetlić okno dialogowe BiometricPrompt:

Używając konstruktora BiometricPrompt możemy:

  • setTitle() – Ustawić tytuł do wyświetlenia (Required)
  • setSubtitle() – Ustawić podtytuł do wyświetlenia (Optional)
  • setDescription() – Ustawić opis do wyświetlenia(Optional)
  • setNegativeButton() – Ustawić tekst dla przycisku negatywnego(Required). Musisz także dostarczyć instancję Executora i słuchacza kliknięć dla przycisku negatywnego.

Uwaga: Nie możesz dostosować ikony lub komunikatu o błędzie, które są używane w oknie dialogowym.

Typowe okno dialogowe BiometricPrompt

Krok 4: Obsługa uwierzytelniania Callback

Następnie używamy BiometricPrompt.AuthenticationCallback do nasłuchiwania zdarzeń uwierzytelniania od użytkowników. Zawiera on 4 metody:

onAuthenticationSucceeded

Gdy odcisk palca zostanie pomyślnie dopasowany do jednego z odcisków palców zarejestrowanych na urządzeniu, wtedy to wywołanie zwrotne zostanie uruchomione. Obiekt AuthenticationResult zostanie przekazany do wywołania zwrotnego.

onAuthenticationFailed

Gdy odcisk palca nie pasuje do żadnego z odcisków palców zarejestrowanych w urządzeniu, zostanie wywołane to wywołanie zwrotne.

onAuthenticationError

Gdy napotkano nienaprawialny błąd i proces uwierzytelniania zakończył się bez powodzenia, zostanie wywołane to wywołanie zwrotne. Do wywołania zwrotnego przekazywany jest kod błędu identyfikujący przyczynę błędu wraz z komunikatem o błędzie. Różne typy kodów błędów, które mogą wystąpić, to:

  • BIOMETRIC_ERROR_LOCKOUT – Operacja została anulowana, ponieważ interfejs API jest zablokowany z powodu zbyt wielu prób.
  • BIOMETRIC_ERROR_LOCKOUT_PERMANENT – Operacja została anulowana, ponieważ BIOMETRIC_ERROR_LOCKOUT wystąpił zbyt wiele razy.
  • BIOMETRIC_ERROR_NO_SPACE – Operacja nie może zostać zakończona, ponieważ pozostało zbyt mało pamięci masowej, aby zakończyć operację.
  • BIOMETRIC_ERROR_TIMEOUT – Timeout wystąpił, ponieważ bieżące żądanie działało zbyt długo.
  • BIOMETRIC_ERROR_UNABLE_TO_PROCESS – Czujnik nie był w stanie przetworzyć bieżącego obrazu.
  • BIOMETRIC_ERROR_USER_CANCELED – Użytkownik anulował operację.
  • BIOMETRIC_ERROR_VENDOR – Jeśli występują warunki, które nie należą do jednej z powyższych kategorii.
  • BIOMETRIC_ERROR_NO_BIOMETRICS – Użytkownik nie ma żadnych danych biometrycznych zarejestrowanych w urządzeniu.
  • BIOMETRIC_ERROR_CANCELED – Operacja została anulowana, ponieważ czujnik biometryczny jest niedostępny.
  • BIOMETRIC_ERROR_HW_NOT_PRESENT – Urządzenie nie ma czujnika biometrycznego.
  • BIOMETRIC_ERROR_HW_UNAVAILABLE – Sprzęt urządzenia jest niedostępny.

onAuthenticationHelp

Ta metoda jest wywoływana, gdy podczas procesu uwierzytelniania wystąpił błąd niefatalny. Wywołanie zwrotne zostanie zaopatrzone w kod pomocy, aby zidentyfikować przyczynę błędu, wraz z komunikatem pomocy. Różne typy kodów pomocy, które mogą wystąpić, to:

  • BIOMETRIC_ACQUIRED_IMAGER_DIRTY – Obraz biometryczny był zbyt hałaśliwy z powodu podejrzenia zabrudzenia czujnika.
  • BIOMETRIC_ACQUIRED_INSUFFICIENT – Obraz biometryczny był zbyt hałaśliwy, aby go przetworzyć. Może to być spowodowane wieloma różnymi przyczynami, ale generalnie jest to spowodowane tym, że obraz nie był czytelny.
  • BIOMETRIC_ACQUIRED_PARTIAL – Wykryto tylko częściowy obraz biometryczny.
  • BIOMETRIC_ACQUIRED_TOO_FAST – Obraz biometryczny był niekompletny, ponieważ użytkownik zbyt szybko przesuwał palec wokół czujnika.
  • BIOMETRIC_ACQUIRED_TOO_SLOW – Obraz biometryczny był nieczytelny z powodu braku ruchu użytkownika wokół czujnika.
Custom Biometric Callback class

Jeśli masz urządzenie z systemem Android P, to właśnie to!

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.