Ověřování pomocí otisku prstu

Tato příručka popisuje, jak do aplikace Xamarin.Android přidat ověřování otiskem prstu, představené v Androidu 6.0.

Přehled ověřování otiskem prstu

Příchod skenerů otisků prstů na zařízeních s Androidem poskytuje aplikace s alternativou k tradiční metodě ověřování uživatelů pomocí uživatelského jména a hesla. Použití otisků prstů k ověření uživatele umožňuje aplikaci začlenit zabezpečení, které je méně rušivé než uživatelské jméno a heslo.

Rozhraní API FingerprintManager cílí na zařízení se skenerem otisků prstů a používají rozhraní API úrovně 23 (Android 6.0) nebo vyšší. Rozhraní API se nacházejí v Android.Hardware.Fingerprints oboru názvů. Knihovna podpory androidu v4 poskytuje verze rozhraní API otisku prstu určené pro starší verze Androidu. Rozhraní API pro kompatibilitu se nacházejí v oboru názvů a distribuují Android.Support.v4.Hardware.Fingerprintse prostřednictvím balíčku NuGet Xamarin.Android.Support.v4.

FingerprintManager (a jeho protějšek Knihovny podpory, FingerprintManagerCompat) je primární třídou pro použití hardwaru pro skenování otisků prstů. Tato třída je obálka sady Android SDK kolem služby na úrovni systému, která spravuje interakce se samotným hardwarem. Zodpovídá za spuštění skeneru otisků prstů a za reakci na zpětnou vazbu ze skeneru. Tato třída má poměrně jednoduché rozhraní s pouze třemi členy:

  • Authenticate – Tato metoda inicializuje hardwarový skener a spustí službu na pozadí a čeká na to, až uživatel naskenuje otisk prstu.
  • EnrolledFingerprints – Tato vlastnost se vrátí true , pokud uživatel zaregistroval jeden nebo více otisků prstů v zařízení.
  • HardwareDetected – Tato vlastnost slouží k určení, zda zařízení podporuje skenování otisků prstů.

Tuto FingerprintManager.Authenticate metodu používá aplikace pro Android ke spuštění skeneru otisků prstů. Následující fragment kódu je příkladem toho, jak ho vyvolat pomocí rozhraní API pro kompatibilitu knihovny podpory:

// context is any Android.Content.Context instance, typically the Activity 
FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(context);
fingerprintManager.Authenticate(FingerprintManager.CryptoObject crypto,
                                int flags,
                                CancellationSignal cancel,
                                FingerprintManagerCompat.AuthenticationCallback callback,
                                Handler handler
                               );

Tato příručka popisuje, jak pomocí FingerprintManager rozhraní API vylepšit aplikaci pro Android pomocí ověřování otiskem prstu. Bude se zabývat tím, jak vytvořit instanci a vytvořit, CryptoObject aby se zajistily výsledky skeneru otisků prstů. Podíváme se, jak by aplikace měla podtřídu podtřídy FingerprintManager.AuthenticationCallback a reagovat na zpětnou vazbu ze skeneru otisků prstů. Nakonec uvidíme, jak zaregistrovat otisk prstu na zařízení nebo emulátoru Androidu a jak pomocí adb simulovat skenování otisků prstů.

Požadavky

Ověřování otiskem prstu vyžaduje Android 6.0 (rozhraní API úrovně 23) nebo vyšší a zařízení se skenerem otisků prstů.

Otisk prstu už musí být zaregistrovaný v zařízení pro každého uživatele, který se má ověřit. To zahrnuje nastavení zámku obrazovky, který používá heslo, PIN kód, vzor potáhnutí prstem nebo rozpoznávání obličeje. V emulátoru Androidu je možné simulovat některé funkce ověřování otiskem prstu. Další informace o těchto dvoutématech