Adja hozzá az ujjlenyomat-hitelesítést alkalmazásához a Biometriaprompt használatával

Szerző: Lewis Jackson
A Teremtés Dátuma: 13 Lehet 2021
Frissítés Dátuma: 1 Július 2024
Anonim
Adja hozzá az ujjlenyomat-hitelesítést alkalmazásához a Biometriaprompt használatával - Alkalmazások
Adja hozzá az ujjlenyomat-hitelesítést alkalmazásához a Biometriaprompt használatával - Alkalmazások

Tartalom


Használjuk a BiometricPrompt API-t egy alkalmazás létrehozásához, amely lehetővé teszi a felhasználó számára ujjlenyomat segítségével személyazonosságának megerősítését.

Nyissa meg az Android Studio alkalmazást, és hozzon létre egy új projektet az „Üres tevékenység” sablon használatával. Amikor a rendszer kéri, állítsa a projekt minimális SDK-ját 28-ra vagy magasabbra, mivel ez megakadályozza az alkalmazás telepítését az Android Pie-nél korábban.

Ha azt akarta, hogy az alkalmazás elérhetővé váljon az Android készülékek szélesebb köre számára, akkor ellenőriznie kell, hogy az Android melyik verziójára van jelenleg telepítve az alkalmazás, majd a biometrikus hitelesítést az eszköz API szintjétől függően különféleképpen kell kezelnie.


Adja hozzá a biometrikus könyvtárat

Az induláshoz nyissa meg a modulszintű build.gradle fájlt, és projektfüggőségként adja hozzá a Biometrikus könyvtár legújabb verzióját:

függőségek {androidx.biometrikus megvalósítás: biometrikus: 1.0.0-alpha03

Adja hozzá a USE_BIOMETRIC engedélyt

A Biometriaprompt API lehetővé teszi az eszköz által támogatott különféle biometrikus hitelesítési módszerek használatát egyetlen engedély révén.

Nyissa meg a projekt manifestjét, és adja hozzá az „USE_BIOMETRIC” engedélyt:

Hozza létre az alkalmazás elrendezését

Ezután készítsük el alkalmazásunk elrendezését. Egyetlen gombot fogok hozzáadni, amely megérintésével elindítja az ujjlenyomat-hitelesítési párbeszédablakot:


Nyissa meg a projekt strings.xml fájlját, és adja hozzá az „auth” karakterlánc-erőforrást:

BiometricPromptSample Hitelesítse az ujjlenyomattal

A felhasználó személyazonosságának hitelesítése

Most nézzük meg, hogyan hitelesítette a felhasználó személyazonosságát a Biometrikus Prompt segítségével.

Hozzon létre egy biometrikus gyors példányt

A Biometrikus Prompt osztály tartalmaz egy társ Builder () osztályt, amelyet felhasználhat Biometrikus Prompt példány létrehozásához és a hitelesítés kezdeményezéséhez:

végleges Biometrikus Prompt.PromptInfo promptInfo = új Biometrikus Prompt.PromptInfo.Builder ()

A Biometrikus Prompt példány felépítésekor meg kell határoznia a hitelesítési párbeszédpanelen megjelenő szöveget, és testre kell szabnia a „negatív gombot”, amely a felhasználó számára lehetővé teszi a hitelesítés megszakítását.

A hitelesítési párbeszédpanel konfigurálásához a következőket kell megadnia:

  • setTitle. Az ujjlenyomat-hitelesítési prompt címe. (Kívánt)
  • setSubtitle. Az ujjlenyomat-hitelesítési prompt felirata. (Választható)
  • setDescription. További leírás, amely megjelenik a hitelesítési párbeszédpanelen. (Választható)
  • setNegativeButton (szöveg, végrehajtó, figyelő). Ez a negatív gomb címkéje, például „Mégse” vagy „Kilépés”. A negatív gomb konfigurálásakor be kell adnia egy Executor példányt és egy OnClickListener szoftvert is, hogy a felhasználó elutasítsa a hitelesítési párbeszédpanelt.

Az írás idején a hitelesítési párbeszédpanelen használt ikont vagy hibát nem lehetett testreszabni.

Végül be kell hívnia az build () -et. Ez a következőket adja nekünk:

final BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () .setTitle ("A címsor itt megy") .setSubtitle ("A felirat ide kerül") .setDescription ("Ez a leírás") .setNegativeButtonText ("Mégsem") .épít();

Kezelje a hitelesítési visszahívásokat

A Biometrikus Prompt példányhoz olyan hitelesítési visszahívási módszerek vannak hozzárendelve, amelyek értesítik az alkalmazást a hitelesítési folyamat eredményéről.

Az összes visszahívást be kell csomagolnia egy Biometrikus Prompt.AuthenticationCallback osztálypéldányba:

végleges Biometrikus Prompt myBiometrPrompt = új Biometrikus Prompt (tevékenység, newExecutor, új Biometrikus Prompt.AuthenticationCallback () {

A következő lépés a következő visszahívási módszerek közül néhány vagy mindegyikének végrehajtása:

1. onAuthenticationSucceched ()

Ezt a módszert akkor hívják, ha az ujjlenyomatot sikeresen illeszti az eszközön regisztrált egyik ujjlenyomathoz. Ebben a forgatókönyvben egy AuthenticationResult objektumot továbbítanak az onAuthenticationSucceched visszahíváshoz, és az alkalmazás ezután elvégzi a feladatot a sikeres hitelesítésre válaszul.

A dolgok egyszerűségének megkönnyítése érdekében alkalmazásunk azáltal válaszol, hogy kinyomtatja az Android Studio Logcat oldalára:

@A nyilvános érvénytelenség érvénytelenítése onAuthenticationSucceched (@NonNull Biometrikus Prompt.AuthenticationResult eredmény) {super.onAuthenticationSucceched (eredmény); Log.d (TAG, "Ujjlenyomat sikeresen felismerve"); }

2. onAuthenticationFailed ()

Ezt a módszert akkor indítják el, ha a szkennelés sikeresen befejeződik, de az ujjlenyomat nem felel meg az eszközön regisztrált nyomatok egyikének sem. Újra, alkalmazásunk válaszol erre a hitelesítési eseményre, a Logcat-re nyomtatva:

@A nyilvános érvénytelenség felülírása onAuthenticationFailed () {super.onAuthenticationFailed (); Log.d (TAG, "Az ujjlenyomatot nem ismeri fel"); }

3. onAuthenticationError

Ez a visszahívás akkor vált ki, amikor helyrehozhatatlan hiba jelentkezik, és a hitelesítés nem fejezhető be sikeresen. Például, az eszköz érintőérzékelőjét szennyeződés vagy zsír borítja, a felhasználó nem regisztrált ujjlenyomatokat ezen az eszközön, vagy nincs elég memória a teljes biometrikus vizsgálat elvégzéséhez.

Íme a kód, amelyet használni fogok az alkalmazásomban:

@A nyilvános void felülbírálása onAuthenticationError (int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} else {Log.d (TAG, "Helyrehozhatatlan hiba történt"); }}

4. onAuthenticationHelp

Az onAuthenticationHelp módszert akkor hívják meg, amikor nem halálos hiba történik, és tartalmaz egy súgókódot, valamint egy, amely további információkat nyújt a hibáról.

A kód egyértelműségének megőrzése érdekében nem használom az onAuthenticationHelp alkalmazást, de a megvalósítás így néz ki:

@A nyilvános érvénytelenség onAuthenticationHelp (int helpCode, CharSequence helpString) {super.onAuthenticationHelp (helpCode, helpString) felülírása; biometricCallback.onAuthenticationHelp (helpCode, helpString); }

Végül meg kell hívnunk a Biometrikus Prompt példány hitelesítési () módszerét:

myBiometricPrompt.authenticate (promptInfo);

Az Android Pie biometrikus hitelesítésének végrehajtása

Miután elvégezte a fenti lépéseket, a MainActivity-nek így kell kinéznie:

import androidx.appcompat.app.AppCompatActivity; import androidx.biometric.BiometricPrompt; import android.os.Bundle; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import androidx.fragment.app.FragmentActivity; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; MainActivity nyilvános osztály kiterjeszti az AppCompatActivity {magán statikus végleges karakterláncot TAG = MainActivity.class.getName (); @ Felülírja a védett érvénytelen onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Szálakkészlet létrehozása egyetlen szállal // Executor newExecutor = Executors.newSingleThreadExecutor (); FragmentActivity aktivitás = ez; // Hallgassa meg a hitelesítési eseményeket // végleges Biometrikus Prompt myBiometrPrompt = új Biometrikus Prompt (tevékenység, newExecutor, új Biometrikus Prompt.AuthenticationCallback () {@Override // onAuthenticationError hívásra kerül, ha halálos hiba fordul elő // public void onAuthenticationError (int errorCode, CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} egyébként {// Print a a Logcat // Log.d (TAG, "Helyrehozhatatlan hiba történt);}}} // onAuthenticationSuccezed hívásra kerül, ha az ujjlenyomat sikeresen illeszkedik // @Oreride public void onAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult eredmény) {super.onAuthenticationSucceched (eredmény); // Print a Logcat // Log.d (TAG, "Fingerprint sikeresen felismert ");} // onAuthenticationFailed hívásra kerül, ha az ujjlenyomat nem egyezik meg. macska // Log.d (TAG, "Ujjlenyomatot nem ismerik fel"); }}); // Hozza létre a Biometrikus Prompt példányt // végleges Biometrikus Prompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () // Adjon hozzá szöveget a párbeszédpanelhez. // .setTitle ("A cím szövege ide kerül") .setSubtitle ("A felirat ide kerül") ) .setDescription ("Ez a leírás") .setNegativeButtonText ("Mégse") // A párbeszédpanel felépítése // .build (); // Az onClickListener hozzárendelése az alkalmazás „Hitelesítés” gombjához // findViewById (R.id.launchAuthentication) .setOnClickListener (új View.OnClickListener () {@Override public void onClick (View v) {myBiometricPrompt.authenticate (promptInfo); }); }}

A projekt tesztelése

Most, hogy elkészítette a projektet, ideje kipróbálni és megnézni, hogy valóban hozzáadja-e ujjlenyomat-hitelesítést alkalmazásához!

A projekt futtatásához szükség van egy fizikai okostelefonra vagy táblagépre, amelyen az Android Pie működik, vagy olyan Android virtuális eszközre (AVD), amely az Android P vagy újabb verzióját használja.

Legalább egy ujjlenyomatot regisztrálnia kell a készüléken. Ha fizikai Android-eszközt használ, akkor:

  • Biztosítsa a lezárási képernyőt PIN-kóddal, jelszóval vagy mintával, ha még nem tette meg (lépjen a „Beállítások> Képernyő lezárása és biztonság> Képernyőzár típusa> Minta / Pin / Jelszó” elemre, majd kövesse a képernyőn megjelenő utasításokat).
  • Indítsa el az eszköz „Beállítások” alkalmazását.
  • Válassza a „Képernyő lezárása és biztonság” elemet.
  • Válassza az „Ujjlenyomat-olvasó” lehetőséget.
  • Kövesse az utasításokat egy vagy több ujjlenyomat regisztrálásához.

Az Android virtuális eszközökön nincs fizikai érintőérzékelő, ezért szimulálnia kell egy érintési eseményt:

  • Indítsa el az AVD-t, ha még nem tette meg.
  • Az AVD mellett egy gombcsíkot fog látni. Keresse meg a három ponttal ellátott „Több” gombot (ahol a kurzor a következő képernyőképen van elhelyezve), és kattintson rá. Ez megnyitja a „kiterjesztett vezérlők” ablakot.
  • A kiterjesztett vezérlők ablakban válassza az „Ujjlenyomat” lehetőséget. Ezzel megnyílik a vezérlőkészlet, ahol különféle érintési eseményeket emulálhat.
  • Nyissa meg a legördülő menüt, és válassza az ujjlenyomatot, amelyet regisztrálni szeretne ezen az eszközön; Az „1. ​​ujj” -t használom.
  • Most kapcsoljuk át a figyelmünket az emulált eszközre. Indítsa el az AVD „Beállítások” alkalmazását, és válassza a „Biztonság és hely” lehetőséget.
  • Ha még nem állította be a PIN-kódot, jelszót vagy mintát, válassza a „Képernyőzár” lehetőséget, és kövesse a képernyőn megjelenő utasításokat a lezárási képernyő rögzítéséhez, majd keresse meg a fő „Beállítások> Biztonság és hely” képernyőt.
  • Válassza az „Ujjlenyomat”, majd az „Ujjlenyomat hozzáadása” lehetőséget.
  • Most felkérjük, hogy nyomja meg az ujját az érintőérzékelőhöz. Ehelyett továbbra is kattintson az „Érintse meg az érzékelőt” gombra, amíg meg nem jelenik a „Ujjlenyomat hozzáadva” felirat.

  • Kattintson a „Kész” gombra.
  • Ha további ujjlenyomatokat kíván regisztrálni, akkor öblítse le és ismételje meg a fenti lépéseket.

Ha legalább egy ujjlenyomatot regisztrált, készen áll arra, hogy tesztelje az alkalmazását. Meg fogom tesztelni, hogy az alkalmazás miként kezeli a három különböző forgatókönyvet:

  • A felhasználó regisztrált ujjlenyomat segítségével próbálja hitelesíteni.
  • A felhasználó megkísérel hitelesíteni egy olyan ujjlenyomat segítségével, amelyet még nem regisztráltak ezen az eszközön.
  • A felhasználó regisztrálatlan ujjlenyomatokkal próbál hitelesíteni többször és gyorsan egymás után.

Próbáljuk meg hitelesíteni az eszközünkön éppen regisztrált ujjlenyomat segítségével:

  • Ne felejtse el megtekinteni az Android Studio Logcat Monitor alkalmazását, mivel itt jelennek meg az alkalmazás különféle alkalmazásai.

  • Telepítse az alkalmazást a teszt eszközre.
  • Koppintson az alkalmazás „Ujjlenyomat-hitelesítés” gombjára. Megjelenik az ujjlenyomat-hitelesítési párbeszédpanel.
  • Ha fizikai eszközt használ, akkor nyomja meg hosszan az ujjhegyét az eszköz érintőérzékelőjéhez. Ha AVD-t használ, akkor az érintéses esemény szimulálásához használja az „Érintse meg az érzékelőt” gombot.
  • Ellenőrizze a Logcat figyelőt. Ha a hitelesítés sikeres volt, akkor a következőt kell látnia: “Az ujjlenyomat sikeresen felismert”

Ezután lássuk, mi történik, ha megkíséreljük hitelesíteni egy olyan ujjlenyomat segítségével, amelyet még nem regisztráltak ezen az eszközön:

  • Érintse meg újra az alkalmazás „Ujjlenyomat-hitelesítés” gombot.
  • Ha AVD-t használ, akkor a „kiterjesztett vezérlők” ablakban válassza ki az ujjlenyomatot nem regisztrálva ezen az eszközön; A „Finger 2” -t használom. Kattintson egy kattintással az „Érintse meg az érzékelőt” gombra.
  • Ha fizikai Android okostelefont vagy táblagépet használ, nyomja meg és tartsa ujját az eszköz érintőérzékelőjével szemben - ügyeljen arra, hogy olyan ujjat használ, amelyet még nem regisztrált az eszközön!
  • Ellenőrizze az Android Studio Logcat-jét, ez most egy „Ujjlenyomatot nem ismer fel” feliratot jelenít meg.

Mint már említettük, a Biometrikus Prompt API automatikusan kezeli a túlzott sikertelen hitelesítési kísérleteket. Ennek a funkciónak a tesztelése:

  • Koppintson az alkalmazás „Ujjlenyomat-hitelesítés” gombjára.
  • Próbálja meg hitelesíteni többször egymás után, regisztrálatlan ujjlenyomat segítségével.
  • Néhány kísérlet után a párbeszédpanel automatikusan bezáródik. Ellenőrizze az Android Studio Logcat-jét, és a következőt kell látnia: „Helyrehozhatatlan hiba történt.”

A teljes alkalmazást letöltheti a GitHubból.

Csomagolás

Ebben a cikkben az Android Pie új Biometrikus Prompt API-ját fedeztük fel, amely lehetővé teszi az ujjlenyomat-hitelesítés hozzáadását az alkalmazásához. Gondolod, hogy a BiometricPrompt az Android korábbi ujjlenyomat-hitelesítési módszereinek javulása? Tudassa velünk az alábbi megjegyzésekben!

Friíté, 2019. február 13 (01:31 ET): Az eredeti ony Xperia XA3 forráa az alábbiak zerint jelenik meg (WinFuture) éppen új render-kézletet tett közzé, ...

Megzoktuk a ony Xperia hardverének rendzere friítéét, é ez em különbözik az IFA-tól az idei évben. Noha a cég nem jelentette be az Xperia XZ Prem...

Lenyűgöző Kiadványok