Lisää sormenjälkitunnistus sovellukseesi käyttämällä BiometricPrompt-sovellusta

Kirjoittaja: Lewis Jackson
Luomispäivä: 13 Saattaa 2021
Päivityspäivä: 1 Heinäkuu 2024
Anonim
Lisää sormenjälkitunnistus sovellukseesi käyttämällä BiometricPrompt-sovellusta - Sovellukset
Lisää sormenjälkitunnistus sovellukseesi käyttämällä BiometricPrompt-sovellusta - Sovellukset

Sisältö


Luodaan BiometricPrompt-sovellusliittymä sovellus, jonka avulla käyttäjä voi vahvistaa henkilöllisyytensä sormenjäljen avulla.

Avaa Android Studio ja luo uusi projekti Tyhjä aktiviteetti -mallin avulla. Aseta pyydettäessä projektisi vähimmäis SDK arvoksi 28 tai korkeampi, koska se estää sovelluksesi asentamisen mihin tahansa aikaisempaan kuin Android Pie.

Jos halusit tehdä sovelluksesi käytettäväksi laajemmalle joukolle Android-laitteita, sinun on tarkistettava, mihin Android-versioon sovelluksesi on asennettu, ja käsittele sitten biometristä todennusta eri tavalla laitteen sovellusliittymätasosta riippuen.

Lisää biometrinen kirjasto

Aloita avaamalla moduulitasolla build.gradle-tiedosto ja lisää Biometrisen kirjaston uusin versio projektiriippuvuutena:

riippuvuudet {toteutus androidx.biometrinen: biometrinen: 1.0.0-alpha03

Lisää USE_BIOMETRIC-lupa

BiometricPrompt -sovellusliittymä antaa sinun käyttää kaikkia lupaa kaikkia biometrisiä todennusmenetelmiä, joita laite tukee.


Avaa projektisi manifesti ja lisää USE_BIOMETRIC-lupa:

Luo sovelluksesi asettelu

Seuraavaksi luodaan sovelluksemme asettelu. Aion lisätä yhden painikkeen, joka napautettaessa käynnistää sormenjälkitunnistuksen valintaikkunan:

Avaa projektisi strings.xml-tiedosto ja lisää ”auth” merkkijonoresurssi:

BiometricPromptSample Todenna sormenjäljen avulla

Käyttäjän henkilöllisyyden todentaminen

Katsotaanpa nyt, kuinka voit todentaa käyttäjän henkilöllisyyden käyttämällä BiometricPrompt-ohjelmaa.


Luo biometrinen kehote

BiometricPrompt-luokka sisältää seuraavan Builder () -luokan, jonka avulla voit luoda BiometricPrompt-ilmentymän ja käynnistää todennuksen:

lopullinen BiometricPrompt.PromptInfo promptInfo = uusi BiometricPrompt.PromptInfo.Builder ()

Kun rakennat BiometricPrompt-ilmentymää, sinun on määritettävä teksti, jonka pitäisi näkyä todennusikkunassa, ja mukauttaa negatiivinen painike, joka on painike, jonka avulla käyttäjä voi peruuttaa todennuksen.

Jotta voit määrittää todennusikkunan, sinun on annettava seuraava:

  • setTitle. Sormenjälkitunnistuskehotteen otsikko. (Vaaditaan)
  • setSubtitle. Sormenjälkitunnistuskehotteen alaotsikko. (Valinnainen)
  • setDescription. Lisäkuvaus, joka näytetään todennusikkunassa. (Valinnainen)
  • setNegativeButton (teksti, toteuttaja, kuuntelija). Tämä on negatiivisen painikkeen etiketti, esimerkiksi ”Peruuta” tai “Poistu”. Kun määrität negatiivisen painikkeen, sinun on myös toimitettava Executor-esiintymä ja OnClickListener, jotta käyttäjä voi hylätä todennusikkunan.

Kirjoittamishetkellä todennusikkunassa käytettyä kuvaketta tai virhettä ei ollut mahdollista mukauttaa.

Lopuksi sinun on kutsuttava rakennus (). Tämä antaa meille seuraavan:

lopullinen BiometricPrompt.PromptInfo promptInfo = uusi BiometricPrompt.PromptInfo.Builder () .setTitle ("Otsikon teksti menee tänne") .setSubtitle ("Tekstitys menee tähän") .setDescription ("Tämä on kuvaus") .setNegativeButtonText ("Peruuta"). .rakentaa();

Käsittele todennusten takaisinsoittoja

BiometricPrompt-ilmentymälle määritetään joukko todentamisen takaisinsoittomenetelmiä, jotka ilmoittavat sovelluksellesi todennusprosessin tuloksista.

Sinun on käärittävä kaikki nämä soittopyynnöt BiometricPrompt.AuthenticationCallback -luokka-ilmentymään:

lopullinen BiometricPrompt myBiometrPrompt = uusi BiometricPrompt (aktiivisuus, newExecutor, uusi BiometricPrompt.AuthenticationCallback () {

Seuraava vaihe on joidenkin tai kaikkien seuraavien takaisinsoitomenetelmien toteuttaminen:

1. onAuthenticationSucceched ()

Tätä menetelmää kutsutaan, kun sormenjälki sovitetaan onnistuneesti yhteen laitteeseen rekisteröidyistä sormenjälkeistä. Tässä skenaariossa AuthenticationResult-objekti välitetään onAuthenticationSucceched-soittopyynnölle, ja sovelluksesi suorittaa sitten tehtävän vastauksena tähän onnistuneeseen todennukseen.

Jotta asiat olisivat yksinkertaisia, sovelluksemme vastaa tulostamalla Android Studion Logcat -sovellukseen:

@Ylitä julkinen tyhjä onAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult tulos) {super.onAuthenticationSucceched (tulos); Log.d (TAG, "sormenjälki tunnistettu onnistuneesti"); }

2. onAuthenticationFailed ()

Tämä menetelmä käynnistetään, kun skannaus on suoritettu onnistuneesti, mutta sormenjälki ei vastaa mitään laitteessa rekisteröityjä tulosteita. Sovelluksemme reagoi jälleen tähän todennustapahtumaan tulostamalla Logcat: lle:

@Paina julkinen tyhjä onAuthenticationFailed () {super.onAuthenticationFailed (); Log.d (TAG, "Sormenjälkeä ei tunnistettu"); }

3. onAuthenticationError

Tämä takaisinsoitto laukeaa aina, kun tapahtuu virhe, jota ei voida korjata, ja todennusta ei voida suorittaa onnistuneesti. Esimerkiksi, laitteen kosketusanturi on lian tai rasvan peittämä, käyttäjä ei ole rekisteröinyt sormenjälkiä tähän laitteeseen tai muistia ei ole riittävästi täydellisen biometrisen skannauksen suorittamiseen.

Tässä on koodi, jota käytän sovelluksessani:

@Ovat ohittaa julkisen tyhjän onAuthenticationError (int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} else {Log.d (TAG, "Tapahtumaton virhe"); }}

4. onAuthenticationHelp

OnAuthenticationHelp-menetelmää kutsutaan aina, kun tapahtuu ei-kohtalokas virhe, ja se sisältää ohjekoodin ja, jotka tarjoavat lisätietoja virheestä.

Koodimme pitämiseksi suoranaisena en aio käyttää onAuthenticationHelp-sovellusta sovelluksessamme, mutta toteutus näyttää tältä:

@Ylitä julkinen tyhjä onAuthenticationHelp (int helpCode, CharSequence helpString) {super.onAuthenticationHelp (helpCode, helpString); biometricCallback.onAuthenticationHelp (helpCode, helpString); }

Viimeinkin, meidän on kutsuttava BiometricPrompt-ilmentymän todennusmenetelmään ():

myBiometricPrompt.authenticate (promptInfo);

Toteutetaan Android Pie: n biometrinen todennus

Kun olet suorittanut kaikki yllä olevat vaiheet, MainActivity-ominaisuutesi pitäisi näyttää tällaiselta:

tuo androidx.appcompat.app.AppCompatActivity; tuo androidx.biometric.BiometrPrompt; tuo android.os.Bundle; tuo java.util.concurrent.Executor; tuo java.util.concurrent.Executors; tuo androidx.fragment.app.FragmentActivity; tuo android.util.Log; Tuo android.view.View; tuo androidx.annotation.NonNull; julkinen luokka MainActivity laajentaa AppCompatActivity {yksityinen staattinen lopullinen merkkijono TAG = MainActivity.class.getName (); @Ohota suojattu tyhjä onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Luo ketjuvarasto yhdellä säikeellä // Executor newExecutor = Executors.newSingleThreadExecutor (); FragmentActivity aktiviteetti = tämä; // Aloita todentamistapahtumien kuunteleminen // lopullinen BiometricPrompt myBiometricPrompt = uusi BiometricPrompt (aktiviteetti, newExecutor, uusi BiometricPrompt.AuthenticationCallback () {@Override // onAuthenticationError kutsutaan, kun tapahtuu kohtalokas virhe // public void onAuthenticationError (int errorCode, CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} else {// Tulosta logcatiin // Log.d (TAG, "Tapahtumaton virhe");}}) // onAuthenticationSuccezed -sovellusta kutsutaan, kun sormenjälki on sovitettu onnistuneesti // @Orride public void onAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult tulos) {super.onAuthenticationSucceched (tulos); // Tulosta Logcatiin // Log.d (TAG, "Fingerprint" tunnistettu onnistuneesti ");} // onAuthenticationFailed kutsutaan, kun sormenjälki ei vastaa // @Orride public void onAuthenticationFailed () {super.onAuthenticationFailed (); // Tulosta lokiin kissa // Log.d (TAG, "Sormenjälkeä ei tunnistettu"); }}); // Luo BiometricPrompt-ilmentymä // lopullinen BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () // Lisää tekstiä valintaikkunaan // .setTitle ("Otsikon teksti menee tänne") .setSubtitle ("Tekstitys menee tänne" ) .setDescription ("Tämä on kuvaus") .setNegativeButtonText ("Peruuta") // Luo valintaikkuna // .build (); // Määritä onClickListener sovelluksen Authentication-painikkeelle // findViewById (R.id.launchAuthentication) .setOnClickListener (uusi View.OnClickListener () {@Orride public void onClick (View v) {myBiometricPrompt.authenticate (promptInfo); }); }}

Projektin testaaminen

Nyt olet luonut projektisi, on aika testata se ja nähdä, lisääkö se todella sormenjälkitunnistusta sovellukseesi!

Projektin suorittamiseksi tarvitset joko fyysisen älypuhelimen tai tablet-laitteen, jolla on Android Pie, tai Android Virtual Device (AVD), joka käyttää Android P -esikatselua tai uudempaa.

Sinun on myös rekisteröitävä ainakin yksi sormenjälki laitteellesi. Jos käytät fyysistä Android-laitetta, toimi seuraavasti:

  • Suojaa lukitusnäyttö PIN-koodilla, salasanalla tai kuviolla, jos et vielä ole (selaa kohtaan “Asetukset> Lukitusnäyttö ja suojaus> Näytön lukitustyyppi> Kuvio / Pin / Salasana” ja seuraamalla sitten näytön ohjeita).
  • Käynnistä laitteen ”Asetukset” -sovellus.
  • Valitse ”Lukitse näyttö ja suojaus”.
  • Valitse ”Sormenjälkitunnistin”.
  • Rekisteröi yksi tai useampi sormenjälki ohjeiden mukaan.

Android-virtuaalilaitteissa ei ole fyysistä kosketusanturia, joten sinun on simuloitava kosketustapahtumaa:

  • Käynnistä AVD, jos et vielä ole sitä tehnyt.
  • AVD: n vieressä näet painikkeen. Etsi kolmipisteinen Lisää-painike (missä kohdistin on seuraavassa kuvakaappauksessa) ja napsauta sitä. Tämä avaa ”Extended Controls” -ikkunan.
  • Valitse Laajennetut ohjaimet -ikkunassa ”Sormenjälki”. Tämä avaa säätöjoukon, jolla voit jäljitellä erilaisia ​​kosketustapahtumia.
  • Avaa avattava valikko ja valitse sormenjälki, jonka haluat rekisteröidä tälle laitteelle. Käytän ”Sormea ​​1.”
  • Nyt siirretään huomio emuloituun laitteeseen. Käynnistä AVD: n ”Asetukset” -sovellus ja valitse Suojaus ja sijainti.
  • Jos et vielä ole määrittänyt PIN-koodia, salasanaa tai kuviota, valitse ”Näyttölukko” ja varmista näytöllä näkyvät ohjeet lukitusnäytön suojaamiseksi. Siirry sitten takaisin “Asetukset> Suojaus ja sijainti” -näyttöön.
  • Valitse ”Sormenjälki” ja sen jälkeen ”Lisää sormenjälki”.
  • Sinua pyydetään nyt painamaan sormesi kosketusanturiin. Sen sijaan jatka napsauttamalla “Kosketa anturia”, kunnes näet ”Sormenjälki lisätty”.

  • Napsauta Valmis.
  • Jos haluat rekisteröidä lisää sormenjälkiä, huuhtele ja toista yllä olevat vaiheet.

Kun olet rekisteröinyt ainakin yhden sormenjäljen, olet valmis laittamaan sovelluksesi testiin. Aion testata, kuinka sovelluksemme käsittelee kolme erilaista skenaariota:

  • Käyttäjä yrittää todentaa rekisteröidyn sormenjäljen avulla.
  • Käyttäjä yrittää todentaa sormenjäljen avulla, jota ei ole rekisteröity tähän laitteeseen.
  • Käyttäjä yrittää todentaa rekisteröimättömät sormenjäljet ​​useita kertoja ja nopeasti peräkkäin.

Yritetään todentaa todennus laitteellamme juuri rekisteröidyn sormenjäljen avulla:

  • Varmista, että tarkastelet Android Studion Logcat Monitor -sovellusta, koska tässä sovelluksesi eri näkyvät.

  • Asenna sovellus testilaitteeseen.
  • Napauta sovelluksesi “Todenna sormenjälillä” -painiketta. Sormenjälkitunnistuksen valintaikkuna tulee näkyviin.
  • Jos käytät fyysistä laitetta, paina ja pidä sormenpäätä laitteen kosketusanturilla. Jos käytät AVD: tä, simuloi kosketustapahtumaa “Kosketa anturia” -painikkeella.
  • Tarkista Logcat Monitor. Jos todennus oli onnistunut, sinun pitäisi nähdä seuraava: ”Sormenjälki tunnistettu onnistuneesti”

Katsotaan seuraavaksi, mitä tapahtuu, jos yritämme todentaa sormenjäljen avulla, jota ei ole rekisteröity tähän laitteeseen:

  • Napauta sovelluksen "Todenna sormenjälki" -painiketta uudelleen.
  • Jos käytät AVD-laitetta, valitse sitten laajennetut ohjaimet -ikkuna valitsemalla sormenjälki ei ole rekisteröity tähän laitteeseen; Käytän ”Sormea ​​2.”. Napsauta “Kosketa anturia” -painiketta napsautuksella.
  • Jos käytät fyysistä Android-älypuhelinta tai -tablettia, paina ja pidä sormeasi laitteen kosketusanturia vasten - varmista, että käytät sormea, jota ei ole rekisteröity tähän laitteeseen!
  • Tarkista Android Studion Logcat, sen pitäisi nyt näyttää ”Sormenjälkeä ei tunnistettu”.

Kuten jo mainittiin, BiometricPrompt API käsittelee automaattisesti liialliset epäonnistuneet todennusyritykset. Tämän toiminnon testaaminen:

  • Napauta sovelluksesi “Todenna sormenjälillä” -painiketta.
  • Yritä todentaa useita kertoja nopeasti peräkkäin käyttämällä rekisteröimätöntä sormenjälkeä.
  • Muutaman yrityksen jälkeen valintaikkuna sulkeutuu automaattisesti. Tarkista Android Studion Logcat, ja sinun pitäisi nähdä seuraava: "Tapahtui virhe, jota ei voida korjata."

Voit ladata koko sovelluksen GitHubista.

Käärimistä

Tässä artikkelissa tutkimme Android Pie: n uutta BiometricPrompt-sovellusliittymää, jonka avulla voit helposti lisätä sormenjälkitunnistuksen sovellukseesi. Luuletko, että BiometricPrompt on parannus Androidin aiempiin sormenjälkitunnistusmenetelmiin? Kerro meille alla olevissa kommenteissa!

Amazon Muic Unlimited tarjoaa vankan kaupan juuri ennen kuin kaikki alkavat uurimman oan Black Friday -tarjoukitaan. Tällä hetkellä käyttäjät voivat ilmoittautua nelj...

Google Net Hub Max on hakukoneen viimeiin älykä näyttö, joka tarjoaa uuremman näytön kuin alkuperäinen Home Hub. Google ilmoitti Max-mallin toukokuua, mutta emme ole...

Kiehtovia Artikkeleita