5 kroků k implementaci biometrického ověřování v systému Android

, Author

Nedávno jsem měl možnost pracovat s novou funkcí BiometricPrompt API, kterou letos uvolnila společnost Google. Zatímco podpora ověřování otisků prstů je k dispozici již od Androidu 6.0, nová funkce BiometricPrompt slibuje větší přesnost a konzistentní úroveň zabezpečení na všech zařízeních, na kterých běží naše aplikace.

Jelikož jsem nedávno implementoval biometrické ověřování v aplikaci pro Android, napadlo mě, že upozorním na některé základní kroky potřebné k implementaci této funkce do aplikace pro Android.

Začněme tedy!

AndroidManifest.xml

Krok 2: Zkontrolujte, zda zařízení podporuje biometrické ověřování

Konkrétně budeme kontrolovat, zda jsou splněny následující podmínky:

  • Zařízení je vybaveno operačním systémem Android 6.0 nebo vyšší
  • Zařízení je vybaveno snímačem otisků prstů
  • Uživatel udělil vaší aplikaci oprávnění k přístupu ke snímači otisků prstů.
  • Uživatel zaregistroval alespoň jeden otisk prstu ve svém zařízení.

Můžeme vytvořit samostatnou třídu util, která bude kontrolovat, zda jsou splněny výše uvedené podmínky:

Krok 3: Zobrazení dialogového okna BiometricPrompt

Po kontrole výše uvedených podmínek můžeme zkontrolovat, zda je verze systému Android v zařízení Android P. Dialogové okno Biometric je podporováno pouze v systému Android P. Podívejme se na to jako první.

Následující kód slouží k zobrazení dialogu BiometricPrompt:

Pomocí nástroje BiometricPrompt builder můžeme:

  • setTitle() – Nastavit nadpis, který se má zobrazit (Povinné)
  • setSubtitle() – Nastavit podnadpis, který se má zobrazit (Nepovinné)
  • setDescription() – Nastavit popis, který se má zobrazit(Nepovinné)
  • setNegativeButton() – Nastavit text pro negativní tlačítko(Povinné). Musíte také poskytnout instanci Executoru a posluchače kliknutí pro negativní tlačítko.

Poznámka: Nemůžete přizpůsobit ikonu nebo chybové hlášení, které jsou použity v dialogu.

Typický dialog BiometricPrompt

Krok 4: Obsluha zpětného volání ověření

Dále používáme zpětné volání BiometricPrompt.AuthenticationCallback pro naslouchání událostem ověření od uživatelů. Obsahuje 4 metody:

onAuthenticationSucceeded

Když je otisk prstu úspěšně spárován s jedním z otisků prstů registrovaných v zařízení, pak se spustí toto zpětné volání. Zpětnému volání bude předán objekt AuthenticationResult.

onAuthenticationFailed

Když se otisk prstu neshoduje s žádným z otisků prstů registrovaných v zařízení, pak bude spuštěno toto zpětné volání.

onAuthenticationError

Když došlo k neopravitelné chybě a proces ověřování skončil bez úspěchu, pak bude spuštěno toto zpětné volání. Zpětné volání je opatřeno chybovým kódem, který identifikuje příčinu chyby, spolu s chybovou zprávou. Různé typy chybových kódů, které se mohou vyskytnout, jsou:

  • BIOMETRIC_ERROR_LOCKOUT – Operace byla zrušena, protože rozhraní API je uzamčeno kvůli příliš mnoha pokusům.
  • BIOMETRIC_ERROR_LOCKOUT_PERMANENT – Operace byla zrušena, protože BIOMETRIC_ERROR_LOCKOUT se vyskytl příliš mnohokrát.
  • BIOMETRIC_ERROR_NO_SPACE – Operaci nelze dokončit, protože na dokončení operace nezbývá dostatek paměti.
  • BIOMETRIC_ERROR_TIMEOUT – Časový limit nastal, protože aktuální požadavek běžel příliš dlouho.
  • BIOMETRIC_ERROR_UNABLE_TO_PROCESS – Senzor nebyl schopen zpracovat aktuální snímek.
  • BIOMETRIC_ERROR_USER_CANCELED – Uživatel zrušil operaci.
  • BIOMETRIC_ERROR_VENDOR – Pokud se vyskytnou podmínky, které nespadají do žádné z výše uvedených kategorií.
  • BIOMETRIC_ERROR_NO_BIOMETRICS – Uživatel nemá v zařízení registrovány žádné biometrické údaje.
  • BIOMETRIC_ERROR_CANCELED – Operace byla zrušena, protože biometrický snímač není k dispozici.
  • BIOMETRIC_ERROR_HW_NOT_PRESENT – Zařízení nemá biometrický senzor.
  • BIOMETRIC_ERROR_HW_UNAVAILABLE – Hardware zařízení je nedostupný.

onAuthenticationHelp

Tato metoda je volána, když během procesu ověřování došlo k nefatální chybě. Zpětné volání bude opatřeno kódem nápovědy, který identifikuje příčinu chyby, spolu se zprávou nápovědy. Různé typy pomocných kódů, které se mohou vyskytnout, jsou:

  • BIOMETRIC_ACQUIRED_IMAGER_DIRTY – Biometrický obraz byl příliš zašuměný kvůli podezření na znečištění snímače.
  • BIOMETRIC_ACQUIRED_INSUFFICIENT – Biometrický obraz byl příliš zašuměný pro zpracování. To může být způsobeno různými důvody, ale obecně se jedná o to, že obraz nebyl čitelný.
  • BIOMETRIC_ACQUIRED_PARTIAL – Byl zjištěn pouze částečný biometrický obraz.
  • BIOMETRIC_ACQUIRED_TOO_FAST – Biometrický obraz byl neúplný, protože uživatel pohyboval prstem po snímači příliš rychle.
  • BIOMETRIC_ACQUIRED_TOO_SLOW – Biometrický obraz byl nečitelný kvůli nedostatečnému pohybu prstu uživatele kolem snímače.
Třída zpětného volání biometrických údajů

Pokud máte zařízení se systémem Android P, pak je to ono!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.