Lisage rakendusele BiometricPrompt sõrmejälgede autentimine

Autor: Lewis Jackson
Loomise Kuupäev: 13 Mai 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Lisage rakendusele BiometricPrompt sõrmejälgede autentimine - Rakendused
Lisage rakendusele BiometricPrompt sõrmejälgede autentimine - Rakendused

Sisu


Kasutame rakendust BiometricPrompt API, et luua rakendus, mis võimaldab kasutajal sõrmejälje abil oma identiteeti kinnitada.

Avage Android Studio ja looge uus projekt, kasutades malli „Tühi tegevus”. Kui küsitakse, määrake projekti minimaalseks SDK väärtuseks 28 või kõrgem, kuna see takistab teie rakenduse installimist mujale kui Android Pie.

Kui soovite muuta oma rakenduse juurdepääsetavaks suuremale hulgale Androidi seadmetele, peate kontrollima, millisesse Androidi versiooni teie rakendus on praegu installitud, ja seejärel käsitlema biomeetrilist autentimist erinevalt, sõltuvalt seadme API-tasemest.

Lisage biomeetriline raamatukogu

Alustamiseks avage moodulitaseme fail build.gradle ja lisage projektisõltuvusena biomeetrilise teegi uusim versioon:

sõltuvused {androidx.biomeetriline: biomeetriline: 1.0.0-alfa03

Lisage USE_BIOMETRIC luba

BiometricPrompt API võimaldab teil ühe loa kaudu kasutada kõiki erinevaid biomeetrilisi autentimismeetodeid, mida seade toetab.


Avage projekti manifest ja lisage luba „USE_BIOMETRIC”:

Looge oma rakenduse paigutus

Järgmisena loome meie rakenduse paigutuse. Lisan ühe nupu, mille koputamisel käivitatakse sõrmejälgede autentimise dialoog:

Avage projekti strings.xml fail ja lisage stringi ressurss autentimine:

BiometricPromptSample Autentige sõrmejäljega

Kasutaja identiteedi autentimine

Vaatame nüüd, kuidas autentimise abil kasutajate identiteeti BiometricPrompt abil saadaks.


Looge biomeetriline kiire eksemplar

Klassi BiometricPrompt kuulub kaasklass Builder (), mida saate kasutada BiometricPrompt eksemplari loomiseks ja autentimise algatamiseks:

lõplik BiometricPrompt.PromptInfo promptInfo = uus BiometricPrompt.PromptInfo.Builder ()

BiometricPrompt eksemplari ehitamisel peate määratlema autentimisdialoogis kuvatava teksti ja kohandama “negatiivset nuppu”, mis on nupp, mis võimaldab kasutajal autentimist tühistada.

Autentimisdialoogi konfigureerimiseks peate esitama järgmised andmed:

  • setTitle. Sõrmejälgede autentimise viiba pealkiri. (Nõutud)
  • setSubtitle. Sõrmejälgede autentimise viiba subtiitrid. (Valikuline)
  • setDescription. Lisakirjeldus, mis kuvatakse teie autentimisdialoogis. (Valikuline)
  • setNegativeButton (tekst, täitja, kuulaja). See on negatiivse nupu silt, näiteks „Tühista” või „Välju”. Negatiivse nupu konfigureerimisel peate lisaks esitama ka käivitaja eksemplari ja OnClickListeneri, et kasutaja saaks autentimisdialoogi lahti lükata.

Selle kirjutamise ajal ei olnud autentimisdialoogis kasutatud ikooni ega viga võimalik kohandada.

Lõpuks peate helistama ehitamisele (). See annab meile järgmise:

final BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () .setTitle ("Pealkirja tekst läheb siia") .setSubtitle ("Subtiitr läheb siia") .setDescription ("See on kirjeldus" .setNegativeButtonText ("Cancel"). .build ();

Käsitlege autentimise tagasilükkeid

Juhtumile BiometricPrompt omistatakse autentimise tagasihelistamismeetodite komplekt, mis teavitab teie rakendust autentimisprotsessi tulemustest.

Peate kõik need tagasikutsed pakkima BiometricPrompt.AuthenticationCallback klassi eksemplari:

lõplik BiometricPrompt myBiometricPrompt = uus BiometricPrompt (aktiivsus, newExecutor, uus BiometricPrompt.AuthenticationCallback () {

Järgmine samm on mõne või kõigi järgmiste tagasihelistamismeetodite juurutamine:

1. onAuthenticationSucceched ()

Seda meetodit nimetatakse siis, kui sõrmejälg on õnnestunud sobitada ühe seadmes registreeritud sõrmejäljega. Selle stsenaariumi korral edastatakse objekt AuthenticationResult tagasihelistamisele onAuthenticationSucceched ja teie rakendus täidab seejärel eduka autentimise vastuseks ülesannet.

Asjade lihtsamaks muutmiseks vastab meie rakendus Android Studio Logcat-le printides:

@Avalik avaliku tühisuse onAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult tulemus) {super.onAuthenticationSucceched (tulemus); Logi.d (TAG, "Sõrmejälg on edukalt tuvastatud"); }

2. onAuthenticationFailed ()

See meetod käivitatakse siis, kui skannimine on edukalt lõpule viidud, kuid sõrmejälg ei vasta ühelegi seadmes registreeritud väljatrükile. Jällegi reageerib meie rakendus sellele autentimissündmusele, printides logcat-le:

@Abasta avalik tühjus onAuthenticationFailed () {super.onAuthenticationFailed (); Logi.d (TAG, "Sõrmejälge ei tuvastatud"); }

3. onAuthenticationError

See tagasihelistamine käivitatakse alati, kui ilmneb taastamatu tõrge ja autentimist ei saa edukalt lõpule viia. Näiteks võib seadme puutetundlikku andurit katta mustus või rasv, kasutaja pole selles seadmes ühtegi sõrmejälge registreerinud või pole täieliku biomeetrilise skannimise tegemiseks piisavalt mälu.

Siin on kood, mida kasutan oma rakenduses:

@Annab avaliku tühise onAuthenticationError (int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} else {Log.d (TAG, "Ilmnes taastamatu tõrge"); }}

4. onAuthenticationHelp

OnAuthenticationHelpi meetodit kutsutakse alati, kui ilmneb mittefataalne tõrge, ning see sisaldab abikoodi ja meetodit, mis pakuvad vea kohta lisateavet.

Meie koodi arusaadavuse huvides ei kasuta ma meie rakenduses onAuthenticationHelpi, kuid rakendus näeks välja umbes selline:

@Kulutage avaliku tühisuse kontroll autentimisabil (int helpCode, CharSequence helpString) {super.onAuthenticationHelp (helpCode, helpString); biometricCallback.onAuthenticationHelp (helpCode, helpString); }

Lõpuks peame kutsuma väljale BiometricPrompt autentimise () meetodi:

myBiometricPrompt.authenticate (promptInfo);

Android Pie biomeetrilise autentimise rakendamine

Kui olete kõik ülaltoodud toimingud lõpetanud, peaks teie MainActivity välja nägema umbes selline:

impordi androidx.appcompat.app.AppCompatActivity; import androidx.biometric.BiometricPrompt; import android.os.Bundle; import java.util.concurrent.Executor; import java.util.concurrent.Executters; import androidx.fragment.app.FragmentActivity; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; avaliku klassi MainActivity laiendab AppCompatActivity {privaatset staatilist lõplikku stringi TAG = MainActivity.class.getName (); @Kuivata kaitstud tühine onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Looge lõimefond ühe keermega // Executor newExecutor = Executors.newSingleThreadExecutor (); FragmentActivity aktiivsus = see; // Alustage autentimisürituste kuulamist // lõplik BiometricPrompt myBiometricPrompt = uus BiometricPrompt (tegevus, newExecutor, uus BiometricPrompt.AuthenticationCallback () {@Override // onAuthenticationError kutsutakse, kui ilmneb saatuslik tõrge // public void onAuthenticationError (int errorCode, CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} veel {// printige a logcat // Log.d (TAG, "Ilmnes taastamatu tõrge");}} // onAuthenticationSucceched kutsutakse, kui sõrmejälg on edukalt sobitatud // @Oreride public void onAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult rezultāts) {super.onAuthenticationSucceched (tulemus); // Logcat printimine logile // Log.d (TAG, "Fingerprint edukalt tuvastatud ");} // onAuthenticationFailed kutsutakse, kui sõrmejälg ei ühti // @Override public void onAuthenticationFailed () {super.onAuthenticationFailed (); // Logi printimine logisse kass // Log.d (TAG, "Sõrmejälge ei tuvastatud"); }}); // Looge BiometricPrompt eksemplar // Lõplik BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () // Lisage dialoogi dialoogi mõni tekst // .setTitle ("Pealkirja tekst läheb siia") .setSubtitle ("Subtiitrid lähevad siia") ) .setDescription ("See on kirjeldus") .setNegativeButtonText ("Cancel") // Loo dialoog // .build (); // Määrake rakenduse nupule „Autentimine” onClickListener // findViewById (R.id.launchAuthentication) .setOnClickListener (uus vaade.OnClickListener () {@Oreride public void onClick (View v) {myBiometricPrompt.authenticate (promptInfo); }); }}

Oma projekti testimine

Nüüd, kui olete oma projekti loonud, on aeg see proovile panna ja uurida, kas see lisab teie rakendusele sõrmejälgede autentimist!

Selle projekti käivitamiseks vajate kas füüsilist nutitelefoni või tahvelarvutit, milles töötab Android Pie, või Android-virtuaalset seadet (AVD), mis kasutab Androidi P eelvaadet või uuemat.

Samuti peate oma seadmes registreerima vähemalt ühe sõrmejälje. Kui kasutate füüsilist Androidi seadet, tehke järgmist.

  • Kui te seda veel teinud pole, lukustage lukustatud ekraan PIN-koodiga, parooliga või mustriga (liikudes valikule „Seaded> Ekraani lukustamine ja turvalisus> Ekraaniluku tüüp> Muster / Pin / parool“ ja järgides seejärel ekraanil kuvatavaid juhiseid).
  • Käivitage seadme rakendus „Seaded”.
  • Valige „Lukusta ekraan ja turvalisus”.
  • Valige „Sõrmejäljeskanner”.
  • Ühe või mitme sõrmejälje registreerimiseks järgige juhiseid.

Androidi virtuaalsetel seadmetel puudub füüsiline puuteandur, seetõttu peate simuleerima puuteüritust:

  • Käivitage oma AVD, kui te seda veel teinud pole.
  • AVD kõrval näete ka nuppe. Leidke kolme punktiga nupp “Veel” (kus kursor paikneb järgmises ekraanipildis) ja klõpsake sellel nuppu. See avab akna „Laiendatud juhtnupud”.
  • Valige aknas Laiendatud juhtnupud „Sõrmejälg”. See avab juhtelementide komplekti, kus saate jäljendada mitmesuguseid puutetundlikke sündmusi.
  • Avage rippmenüü ja valige sõrmejälg, mille soovite selles seadmes registreerida; Ma kasutan “sõrme 1.”
  • Liigume nüüd oma tähelepanu jäljendatud seadmele. Käivitage AVD rakendus „Seaded” ja valige „Turvalisus ja asukoht”.
  • Kui te pole veel PIN-koodi, parooli või mustrit seadistanud, valige siis „Ekraanilukk” ja lukustuskuva kinnitamiseks järgige ekraanil kuvatavaid juhiseid, seejärel navigeerige tagasi põhiekraanile „Seaded> Turvalisus ja asukoht”.
  • Valige „Fingerprint” ja seejärel „Add sõrmejälg”.
  • Nüüd palutakse teil vajutada sõrm puuteandurile. Klõpsake selle asemel nuppu „Puudutage andurit”, kuni kuvatakse teade „Sõrmejälg on lisatud”.

  • Klõpsake „Valmis“.
  • Kui soovite registreerida täiendavaid sõrmejälgi, loputage ja korrake ülaltoodud samme.

Kui olete vähemalt ühe sõrmejälje registreerinud, olete valmis oma rakenduse proovile panema. Ma testin, kuidas meie rakendus käitleb kolme erinevat stsenaariumi:

  • Kasutaja proovib autentimist registreeritud sõrmejälje abil.
  • Kasutaja proovib autentida sõrmejälje abil, mida selles seadmes pole registreeritud.
  • Kasutaja proovib autentimist registreerimata sõrmejälgede abil mitu korda ja kiiresti üksteise järel.

Proovime autentida sõrmejälje abil, mille me just oma seadmesse registreerisime:

  • Veenduge, et vaatate Android Stuudio Logcat Monitorit, kuna siin kuvatakse teie rakenduse erinevad s.

  • Installige oma rakendus testimisseadmesse.
  • Puudutage rakenduse nuppu „Autentige sõrmejäljega”. Ilmub sõrmejälgede autentimise dialoog.
  • Kui kasutate füüsilist seadet, vajutage ja hoidke sõrmeotsa seadme puutetundliku anduri all. Kui kasutate AVD-d, kasutage puutetundliku sündmuse simuleerimiseks nuppu „Puudutage andurit“.
  • Kontrollige Logcat Monitori. Kui autentimine oli edukas, peaksite nägema järgmist: „Sõrmejälg tuvastati edukalt“

Järgmisena vaatame, mis juhtub, kui proovime autentida sõrmejälje abil, mida selles seadmes pole registreeritud:

  • Puudutage uuesti rakenduse nuppu „Autentige sõrmejäljega”.
  • Kui kasutate AVD-d, valige sõrmejälje valimiseks aken „Laiendatud juhtnupud” ei ole selles seadmes registreeritud; Ma kasutan “sõrme 2.”. Klõpsake nuppu “Puudutage andurit”.
  • Kui kasutate füüsilist Androidi nutitelefoni või tahvelarvutit, siis vajutage ja hoidke sõrmeotsa seadme puutetundliku anduri all - veenduge, et kasutate sõrme, mida pole selles seadmes registreeritud!
  • Kontrollige Android Studio Logcat, see peaks nüüd kuvama teksti „Sõrmejälge ei tuvastatud”.

Nagu juba mainitud, tegeleb BiometricPrompt API automaatselt ülemääraste ebaõnnestunud autentimiskatsetega. Selle funktsionaalsuse testimiseks toimige järgmiselt.

  • Puudutage oma rakenduse nuppu „Autentige sõrmejäljega”.
  • Proovige autentimist mitu korda kiiresti järjest, kasutades registreerimata sõrmejälge.
  • Mõne katse järel peaks dialoogiboks automaatselt sulguma. Kontrollige Android Studio Logcat ja peaksite nägema järgmist: „Ilmnes taastamatu tõrge”.

Terve rakenduse saate alla laadida GitHubist.

Pakkimine üles

Selles artiklis uurisime Android Pie'i uut BiometricPrompt API-t, mis võimaldab teil hõlpsalt oma rakendusele sõrmejälgede autentimist lisada. Kas arvate, et BiometricPrompt on Androidi varasemate sõrmejälgede autentimismeetodite täiustus? Andke meile allolevates kommentaarides teada!

Eelmiel nädalal väitid Google'i teadlaed, et jõudid ajalehe ilmunud artikli kohaelt "kvantülemueni" Financial Time. Enne eemaldamit potitati Google'i paber lü...

Pixel 4 iu tõi teile MNML Cae, maailma õhema telefonikohvri loojad. äätke oodukoodi abil oma Pixel 4 või Pixel 4 XL ümbrie 25% AAPixel4...

Huvitav Saidil