Pridėkite pirštų atspaudų autentifikavimą savo programoje naudodami „BiometrPrompt“

Autorius: Lewis Jackson
Kūrybos Data: 13 Gegužė 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
Add Fingerprint Authentication In Apps | BiometricPrompt | Android Pie
Video.: Add Fingerprint Authentication In Apps | BiometricPrompt | Android Pie

Turinys


Panaudosime „BiometricPrompt“ API kurdami programą, kuri leis vartotojui patvirtinti savo tapatybę naudojant pirštų atspaudus.

Atidarykite „Android Studio“ ir sukurkite naują projektą naudodami šabloną „Tuščia veikla“. Kai būsite paraginti, nustatykite projekto minimalų SDK į 28 ar naujesnį, nes tai neleis jūsų programai įdiegti anksčiau nei „Android Pie“.

Jei norėjote padaryti savo programą prieinamą platesniam „Android“ įrenginių diapazonui, turėtumėte patikrinti, kurioje „Android“ versijoje jūsų programa yra įdiegta, ir tada tvarkyti biometrinį autentifikavimą skirtingai, atsižvelgiant į įrenginio API lygį.

Pridėkite biometrinę biblioteką

Norėdami pradėti, atidarykite modulio lygio „build.gradle“ failą ir pridėkite naujausią „Biometrijos“ bibliotekos versiją kaip projekto priklausomybę:

priklausomybės {įgyvendinimas androidx.biometrinis: biometrinis: 1.0.0-alfa03

Pridėkite USE_BIOMETRIC leidimą

„BiometrPrompt“ API suteikia galimybę per visus leidimus naudoti visus skirtingus biometrinio atpažinimo metodus, kuriuos palaiko įrenginys.


Atidarykite projekto manifestą ir pridėkite „USE_BIOMETRIC“ leidimą:

Sukurkite savo programos išdėstymą

Tada sukurkime mūsų programos išdėstymą. Aš pridėsiu vieną mygtuką, kuris palietus paleis pirštų atspaudų autentifikavimo dialogą:

Atidarykite projekto strings.xml failą ir pridėkite „auth“ eilutės šaltinį:

„Biometrinispromptas“ Autentifikuokite pirštų atspaudu

Vartotojo tapatybės patvirtinimas

Dabar pažiūrėkime, kaip autentifikavote vartotojo tapatybę naudodamiesi „BiometricPrompt“.


Sukurkite biometrinį greitą egzempliorių

Į „BiometricPrompt“ klasę įeina papildoma „Builder“ () klasė, kurią galite naudoti norėdami sukurti „Biometrinis Prompt“ egzempliorių ir inicijuoti autentifikavimą:

galutinis „BiometricPrompt.PromptInfo“ promptInfo = naujas „BiometrPrompt.PromptInfo.Builder“ ()

Kurdami „BiometricPrompt“ egzempliorių, turėsite apibrėžti tekstą, kuris turėtų būti rodomas autentifikavimo dialoge, ir pritaikyti „neigiamą mygtuką“, kuris yra mygtukas, leidžiantis vartotojui atšaukti autentifikavimą.

Norėdami sukonfigūruoti autentifikavimo dialogą, turėsite pateikti:

  • setTitle. Pirštų atspaudų atpažinimo užklausos pavadinimas. (Būtina)
  • „setSubtitle“. Pirštų atspaudų autentifikavimo eilutės paantraštė. (Pasirenkama)
  • setDescription. Papildomas aprašymas, kuris bus rodomas jūsų autentifikacijos dialoge. (Pasirenkama)
  • „setNegativeButton“ (tekstas, vykdytojas, klausytojas). Tai yra neigiamo mygtuko etiketė, pvz., „Atšaukti“ arba „Išeiti“. Konfigūruodami neigiamą mygtuką taip pat turėsite pateikti „Executor“ egzempliorių ir „OnClickListener“, kad vartotojas galėtų atsisakyti autentifikavimo dialogo.

Rašymo metu nebuvo įmanoma pritaikyti piktogramos ar klaidos, naudojamos autentifikavimo dialoge.

Galiausiai turėsite iškviesti „build“ (). Tai suteikia mums:

final Biometrinis Prompt.PromptInfo promptInfo = naujas Biometrinis Prompt.PromptInfo.Builder () .setTitle („Pavadinimo tekstas eina čia“) .setSubtitle („Paantraštė eina čia“) .setDescription („Tai yra aprašymas“) .setNegativeButtonText („Atšaukti“). .build ();

Tvarkykite atpažinimo atšaukimus

„BiometrPrompt“ egzemplioriui priskiriamas atpažinimo atpažinimo metodų rinkinys, kuris praneš jūsų programai apie autentifikavimo proceso rezultatus.

Turėsite įvynioti visus šiuos atšaukimus į „BiometricPrompt.AuthenticationCallback“ klasės pavyzdį:

galutinis „BiometricPrompt“ „myBiometrPrompt“ = naujas „BiometrPrompt“ (veikla, „newExecutor“, naujas „BiometricPrompt.AuthenticationCallback“) () {

Kitas žingsnis yra įgyvendinti kai kuriuos arba visus šiuos atgalinio ryšio metodus:

1. onAuthenticationSucceched ()

Šis metodas vadinamas, kai pirštų atspaudas sėkmingai suderinamas su vienu iš prietaiso užregistruotų pirštų atspaudų. Tokiu atveju „AuthenticationResult“ objektas perduodamas „onAuthenticationSucceched“ atšaukimui, o jūsų programa atliks užduotį, atsakydama į šį sėkmingą autentifikavimą.

Kad viskas būtų paprasčiau, programa reaguos atspausdinus „Android Studio“ „Logcat“:

@Atšaukti viešą tuštumą onAuthenticationSucceched (@NonNull Biometrinis Prompt.AuthenticationResult rezultatas) {super.onAuthenticationSucceched (rezultatas); Log.d (TAG, „Pirštų atspaudas atpažintas sėkmingai“); }

2. onAuthenticationFailed ()

Šis metodas suaktyvinamas sėkmingai nuskaitymo metu, tačiau pirštų atspaudai neatitinka jokių įrenginyje užregistruotų spaudinių. Vėlgi, mūsų programa reaguos į šį autentifikavimo įvykį spausdindama „Logcat“:

@Atšaukti viešą negaliojimą onAuthenticationFailed () {super.onAuthenticationFailed (); Log.d (TAG, „Piršto atspaudas neatpažintas“); }

3. onAuthenticationError

Šis atšaukimas suaktyvinamas, kai įvyksta neatitaisoma klaida ir autentifikavimas negali būti sėkmingai baigtas. Pvz., Galbūt prietaiso jutiklinį jutiklį uždengė nešvarumai ar riebalai, vartotojas šiame įrenginyje neįregistravo jokių pirštų atspaudų arba nėra pakankamai atminties, kad būtų galima atlikti išsamų biometrinį nuskaitymą.

Štai kodas, kurį naudosiu savo programoje:

@Atšaukti viešą tuštumą onAuthenticationError (int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} else {Log.d (TAG, „Neištaisoma klaida įvyko“); }}

4. onAuthenticationHelp

„OnAuthenticationHelp“ metodas yra iškviečiamas, kai įvyksta nemirtina klaida. Jis apima pagalbos kodą ir kitą, kuris pateikia daugiau informacijos apie klaidą.

Kad būtų lengviau suprasti mūsų kodą, programoje nenaudosiu onAuthenticationHelp, tačiau diegimas atrodytų maždaug taip:

@Atšaukti viešą negaliojimąAuthenticationHelp (int helpCode, CharSequence helpString) {super.onAuthenticationHelp (helpCode, helpString); biometricCallback.onAuthenticationHelp (helpCode, helpString); }

Galiausiai turime iškviesti autentiškumo () metodą, esantį „BiometricPrompt“ egzemplioriuje:

„myBiometricPrompt.authenticate“ (promptInfo);

Įdiegti „Android Pie“ biometrinį autentifikavimą

Atlikę visus aukščiau nurodytus veiksmus, „MainActivity“ turėtų atrodyti taip:

importuoti „androidx.appcompat.app.AppCompatActivity“; importuoti androidx.biometriniai.BiometriniaiPrompt; importuoti android.os.Bundle; importuoti java.util.concurrent.Executor; importuoti java.util.concurrent.Executers; importuoti „androidx.fragment.app.FragmentActivity“; importuoti android.util.Log; importuoti android.view.View; importuoti androidx.annotation.NonNull; viešosios klasės „MainActivity“ išplečia „AppCompatActivity“ {privati ​​statinė galutinė eilutė TAG = MainActivity.class.getName (); @Apsaugoti negaliojantį „onCreate“ (Bundle saveInstanceState) {super.onCreate (savedInstanceState); „setContentView“ (R.layout.activity_main); // Sukurkite gijų fondą vienu sriegiu // Executor newExecutor = Executors.newSingleThreadExecutor (); „FragmentActivity“ veikla = tai; // Pradėkite klausytis autentifikavimo įvykių // galutinis „BiometrPrompt“ myBiometricPrompt = naujas „BiometrPrompt“ (veikla, „newExecutor“, naujas „Biometrinis“ rinkinys. „AuthenticationCallback“) {@Override // „onAuthenticationError" yra vadinamas, kai įvyksta mirtina klaida. // public void onAuthenticationError (int errorCode, „CharSequence errString“ {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} dar {// Spausdinti „Logcat“ // Log.d “(TAG,„ Įvyko neatitaisoma klaida “);}} // onAuthenticationSucceched iškviečiamas, kai sėkmingai suderinamas pirštų atspaudas // @Oreride public void onAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult rezultāts) {super.onAuthenticationSucceched (rezultatas); // Spausdinti „Logcat“ // Log.d (TAG, „Fingerprint“) pripažinta sėkmingai ");} // onAuthenticationFailed yra vadinama, kai pirštų atspaudai nesutampa // @Override public void onAuthenticationFailed () {super.onAuthenticationFailed (); // Spausdinti į žurnalą katė // Log.d (TAG, „Piršto antspaudas neatpažintas“); }}); // Sukurkite „BiometricPrompt“ egzempliorių // galutinis „BiometricPrompt.PromptInfo“ promptInfo = new BiometricPrompt.PromptInfo.Builder () // Į dialogo langą įtraukite šiek tiek teksto // .setTitle („Pavadinimo tekstas eina čia“) .setSubtitle („Subtitrai eina čia“). ) .setDescription ("Tai yra aprašymas") .setNegativeButtonText ("Atšaukti") // Sukurkite dialogo langą // .build (); // Priskirkite „onClickListener“ programos mygtukui „Autentifikavimas“ // findViewById (R.id.launchAuthentication) .setOnClickListener (naujas „View.OnClickListener“) {@Override public void onClick (View v) {myBiometricPrompt.authenticate (promptInfo); }); }}

Savo projekto išbandymas

Dabar, kai sukūrei savo projektą, pats laikas jį išbandyti ir išsiaiškinti, ar jis iš tikrųjų prideda jūsų programos pirštų atspaudų autentifikavimą!

Jei norite vykdyti šį projektą, jums reikės fizinio išmaniojo telefono ar planšetinio kompiuterio, kuriame veikia „Android Pie“, arba „Android“ virtualus įrenginys (AVD), kuriame naudojama „Android P“ ar naujesnė peržiūra.

Taip pat turėsite įregistruoti bent vieną pirštų atspaudą savo įrenginyje. Jei naudojate fizinį „Android“ įrenginį, tada:

  • Užtikrinkite užrakinimo ekraną PIN kodu, slaptažodžiu ar šablonu, jei to dar nepadarėte (eikite į „Nustatymai> Užrakinti ekraną ir sauga> Ekrano užrakto tipas> Raštas / PIN / slaptažodis“ ir tada vykdykite ekrane pateikiamus nurodymus).
  • Paleiskite įrenginio programą „Nustatymai“.
  • Pasirinkite „Užrakinti ekraną ir saugą“.
  • Pasirinkite „Pirštų atspaudų skaitytuvas“.
  • Vykdykite instrukcijas, norėdami užregistruoti vieną ar kelis pirštų atspaudus.

„Android“ virtualiuose įrenginiuose nėra fizinio jutiklinio jutiklio, todėl turėsite modeliuoti lietimo įvykį:

  • Paleiskite AVD, jei dar to nepadarėte.
  • Šalia AVD pamatysite mygtukų juostelę. Suraskite trijų taškų mygtuką „Daugiau“ (kur žymeklis išdėstytas šioje ekrano kopijoje) ir spustelėkite jį. Atidaromas langas „Išplėstinis valdymas“.
  • Išplėstinių valdiklių lange pasirinkite „Pirštų atspaudas“. Atidaromas valdiklių rinkinys, kuriame galite mėginti įvairius lietimo įvykius.
  • Atidarykite išskleidžiamąjį meniu ir pasirinkite pirštų atspaudus, kuriuos norite užregistruoti šiame įrenginyje; Aš naudoju „Pirštas 1“.
  • Dabar atkreipkime dėmesį į mėgdžiojamą įrenginį. Paleiskite AVD programą „Nustatymai“ ir pasirinkite „Sauga ir vieta“.
  • Jei dar nenustatėte PIN, slaptažodžio ar šablono, tada pasirinkite „Ekrano užraktas“ ir vykdykite ekrane pateikiamus nurodymus, kad apsaugotumėte užrakinimo ekraną, tada grįžkite į pagrindinį ekraną „Nustatymai> Sauga ir vieta“.
  • Pasirinkite „Fingerprint“, po to - „Add fingerprint“.
  • Dabar būsite paraginti paspausti pirštą prie jutiklinio jutiklio. Vietoje to, toliau spustelėkite „Palieskite jutiklį“, kol pamatysite „Pridėtas pirštų atspaudas“.

  • Spustelėkite „Atlikta“.
  • Jei norite užregistruoti papildomus pirštų atspaudus, tada nuskalaukite ir pakartokite aukščiau aprašytus veiksmus.

Kai užregistruosite bent vieną pirštų atspaudą, būsite pasiruošę išbandyti savo programą. Aš išbandysiu, kaip mūsų programa tvarko tris skirtingus scenarijus:

  • Vartotojas bando autentifikuoti naudodamas registruotą pirštų atspaudą.
  • Vartotojas bando autentifikuoti naudodamas pirštų atspaudus, kurie nėra registruoti šiame įrenginyje.
  • Vartotojas bando autentifikuoti naudodamas neregistruotus pirštų atspaudus kelis kartus ir greitai iš eilės.

Pabandykime autentifikuoti naudodamiesi pirštų atspaudu, kurį ką tik įregistravome įrenginyje:

  • Įsitikinkite, kad žiūrite „Android Studio“ „Logcat Monitor“, nes čia bus rodomos įvairios jūsų programos.

  • Įdiekite savo programą bandomajame įrenginyje.
  • Bakstelėkite savo programos mygtuką „Autentifikuoti pirštų atspaudais“. Pasirodys pirštų atspaudų atpažinimo dialogo langas.
  • Jei naudojate fizinį įrenginį, paspauskite ir laikykite piršto galiuką prie prietaiso jutiklinio jutiklio. Jei naudojate AVD, tada naudokite mygtuką „Palieskite jutiklį“, kad imituotumėte lietimo įvykį.
  • Patikrinkite „Logcat Monitor“. Jei autentifikavimas buvo sėkmingas, turėtumėte pamatyti šiuos dalykus: „Piršto atspaudas atpažintas sėkmingai“

Tada pažiūrėkime, kas nutiks, jei bandysime autentifikuoti naudodami pirštų atspaudus, kurie neregistruoti šiame įrenginyje:

  • Dar kartą palieskite programos mygtuką „Autentifikuoti naudojant pirštų atspaudus“.
  • Jei naudojate AVD, naudokite langą „Išplėstinis valdymas“, kad pasirinktumėte pirštų atspaudus nėra registruotas šiame įrenginyje; Aš naudoju „Finger 2“. Spustelėkite mygtuką „Palieskite jutiklį“.
  • Jei naudojate fizinį „Android“ išmanųjį telefoną ar planšetinį kompiuterį, paspauskite ir laikykite piršto galiuką prie prietaiso jutiklinio jutiklio - įsitikinkite, kad naudojate pirštą, kuris nėra registruotas šiame įrenginyje!
  • Patikrinkite „Android Studio“ „Logcat“, dabar jis turėtų rodyti „Piršto atspaudas neatpažintas“.

Kaip jau minėta, „BiometrPrompt“ API automatiškai tvarko nepavykusius autentifikavimo bandymus. Norėdami išbandyti šią funkciją:

  • Bakstelėkite programos mygtuką „Autentifikuoti naudojant pirštų atspaudus“.
  • Bandykite autentifikuoti kelis kartus iš eilės, naudodamiesi neregistruotu pirštų atspaudu.
  • Po kelių bandymų dialogo langas turėtų uždaryti automatiškai. Patikrinkite „Android Studio“ „Logcat“ ir turėtumėte pamatyti šiuos dalykus: „Įvyko neatitaisoma klaida“.

Galite atsisiųsti visą programą iš „GitHub“.

Apvyniojimas

Šiame straipsnyje mes tyrėme naują „Android Pie“ „BiometrPrompt“ API, leidžiančią lengvai pridėti pirštų atspaudų autentifikavimą prie jūsų programos. Ar manote, kad „BiometrPrompt“ yra ankstesnių „Android“ pirštų atspaudų atpažinimo metodų patobulinimas? Praneškite mums toliau pateiktuose komentaruose!

„amung“ ir LG yra dvi monolitinė bendrovė avo tėvynėje Pietų Korėjoje. Abi bendrovė atkleidė avo pagrindiniu telefonu 2019 metų pirmajam pumečiui, pirmiauia „amung“ u „Galaxy 10“, pakui „LG“ u „G8 Thi...

Beveik neabejotina, kad „amung Galaxy 10“ yra viena geriauiai parduodamų 2019 m. Telefonų. Ji taip pat bu viena brangiauių, bet ką daryti, jei ten būtų „premium“ išmanui telefona, kurį galėtumėte nuip...

Įdomu Šiandien