Pievienojiet lietotnei pirkstu nospiedumu autentifikāciju, izmantojot programmu BiometrPrompt

Autors: Lewis Jackson
Radīšanas Datums: 13 Maijs 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
Pievienojiet lietotnei pirkstu nospiedumu autentifikāciju, izmantojot programmu BiometrPrompt - Progr
Pievienojiet lietotnei pirkstu nospiedumu autentifikāciju, izmantojot programmu BiometrPrompt - Progr

Saturs


Izmantosim API BiometrPrompt, lai izveidotu lietotni, kas ļaus lietotājam apstiprināt savu identitāti, izmantojot pirkstu nospiedumu.

Atveriet Android Studio un izveidojiet jaunu projektu, izmantojot veidni “Tukša aktivitāte”. Kad tiek parādīts uzaicinājums, iestatiet projekta minimālo SDK uz 28 vai augstāku, jo tas neļaus jūsu lietojumprogrammu instalēt uz neko citu kā Android Pie.

Ja vēlaties padarīt savu lietotni pieejamu plašākam Android ierīču klāstam, jums jāpārbauda, ​​kurā Android versijā jūsu lietojumprogramma pašlaik ir instalēta, un pēc tam atšķirīgi jārīkojas ar biometrisko autentifikāciju atkarībā no ierīces API līmeņa.

Pievienojiet biometrisko bibliotēku

Lai sāktu, atveriet moduļa līmeņa build.gradle failu un pievienojiet jaunāko Biometrijas bibliotēkas versiju kā atkarību no projekta:

atkarības {ieviešana androidx.biometriskā: biometriskā: 1.0.0-alpha03

Pievienojiet USE_BIOMETRIC atļauju

Biometriskā profila API ļauj ar vienas atļaujas palīdzību izmantot visas dažādās biometriskās autentifikācijas metodes, kuras ierīce atbalsta.


Atveriet sava projekta manifestu un pievienojiet atļauju “USE_BIOMETRIC”:

Izveidojiet savas lietojumprogrammas izkārtojumu

Pēc tam izveidosim mūsu lietojumprogrammas izkārtojumu. Es pievienošu vienu pogu, kurai pieskaroties tiks atvērts pirkstu nospiedumu autentifikācijas dialogs:

Atveriet projekta strings.xml failu un pievienojiet virknes resursu “auth”:

Biometriskā profila paraugs Autentificējiet ar pirkstu nospiedumu

Lietotāja identitātes autentificēšana

Tagad apskatīsim, kā jūs varētu autentificēt lietotāja identitāti, izmantojot biometrisko profilu.


Izveidojiet biometrisko uzvedni

Biometrijaspromptklasē ietilpst papildkomplekts Builder () klase, kuru varat izmantot, lai izveidotu Biometriskāprompt instanci un iniciētu autentifikāciju:

galīgā Biometriskā Prompt.PromptInfo promptInfo = jauna Biometriskā Prompt.PromptInfo.Builder ()

Veidojot savu BiometricPrompt instanci, jums būs jādefinē teksts, kas jāparādās autentifikācijas dialoglodziņā, un jāpielāgo “negatīvā poga”, kas ir poga, kas lietotājam ļauj atcelt autentifikāciju.

Lai konfigurētu autentifikācijas dialogu, jums būs jānorāda:

  • setTitle. Pirkstu nospiedumu autentifikācijas uzvednes nosaukums. (Obligāti)
  • setSubtitle. Pirkstu nospiedumu autentifikācijas uzvednes apakšvirsraksts. (Neobligāti)
  • setDescription. Papildu apraksts, kas tiks parādīts autentifikācijas dialoglodziņā. (Neobligāti)
  • setNegativeButton (teksts, izpildītājs, klausītājs). Šī ir negatīvās pogas etiķete, piemēram, “Atcelt” vai “Iziet”. Konfigurējot negatīvo pogu, jums būs jānorāda arī izpildītāja piemērs un OnClickListener, lai lietotājs varētu noraidīt autentifikācijas dialogu.

Rakstīšanas laikā nebija iespējams pielāgot ikonu vai kļūdu, kas tika izmantota autentifikācijas dialoglodziņā.

Visbeidzot, jums būs jāaicina uz build (). Tas dod mums sekojošo:

final BiometricPrompt.PromptInfo promptInfo = new BiometrPrompt.PromptInfo.Builder () .setTitle ("Virsraksta teksts iet šeit") .setSubtitle ("Subtitri iet šeit") .setDescription ("Šis ir apraksts") .setNegativeButtonText ("Atcelt"). .būvēt();

Rīkojieties ar autentifikācijas atzvaniem

Biometrijasprompt gadījumam tiek piešķirts autentifikācijas atzvanīšanas metožu kopums, kas jūsu lietotnei paziņos par autentifikācijas procesa rezultātiem.

Jums būs jāaptin visi šie atzvanīšanas gadījumi BiometricalPrompt.AuthenticationCallback klases instancē:

galīgais BiometricPrompt myBiometricPrompt = jauns BiometrPrompt (aktivitāte, newExecutor, jauns BiometricPrompt.AuthenticationCallback () {

Nākamais solis ir dažu vai visu šo atzvanīšanas metožu ieviešana:

1. onAuthenticationSucceched ()

Šī metode tiek saukta, kad pirkstu nospiedumi tiek veiksmīgi saskaņoti ar kādu no ierīcē reģistrētajiem pirkstu nospiedumiem. Šajā scenārijā objekts AuthenticationResult tiek nodots atzvanīšanai onAuthenticationSucceched, un jūsu lietotne pēc tam veiks uzdevumu, atbildot uz šo veiksmīgo autentifikāciju.

Lai palīdzētu visu padarīt vienkāršāku, mūsu lietotne atbildēs, izdrukājot Android Studio logcat:

@Aizvērtēt publisko spēkā neesamību vietnēAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult rezultāts) {super.onAuthenticationSucceched (rezultāts); Log.d (TAG, "Pirkstu nospiedums veiksmīgi atzīts"); }

2. onAuthenticationFailed ()

Šī metode tiek aktivizēta, kad skenēšana ir veiksmīgi pabeigta, bet pirkstu nospiedums neatbilst nevienai no ierīcē reģistrētajām izdrukām. Atkal mūsu lietotne reaģēs uz šo autentifikācijas notikumu, izdrukājot Logcat:

@Atvērt publisku tukšumu onAuthenticationFailed () {super.onAuthenticationFailed (); Log.d (TAG, "Pirkstu nospiedums nav atpazīts"); }

3. onAuthenticationError

Šis atzvans tiek aktivizēts ikreiz, kad rodas neatjaunojama kļūda un autentifikāciju nevar veiksmīgi pabeigt. Piemēram, iespējams, ka ierīces skārienjūtīgo sensoru pārklāj netīrumi vai tauki, lietotājs šajā ierīcē nav reģistrējis nevienu pirkstu nospiedumu vai arī nav pietiekami daudz atmiņas, lai veiktu pilnīgu biometrisko skenēšanu.

Šis ir kods, ko izmantošu savā lietotnē:

@Atvērt publisku spēkā neesamību onAuthenticationError (int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} else {Log.d (TAG, "Radās neatjaunojama kļūda"); }}

4. onAuthenticationHelp

OnAuthenticationHelp metodi izsauc vienmēr, kad rodas kļūda, kas nav fatāla, un tajā ir iekļauts palīdzības kods un tas, kas sniedz papildu informāciju par kļūdu.

Lai palīdzētu mūsu koda skaidrībā, es savā lietotnē neizmantošu onAuthenticationHelp, taču ieviešana izskatīsies apmēram šādi:

@Atvērt publisku spēkā neesamību onAuthenticationHelp (int helpCode, CharSequence helpString) {super.onAuthenticationHelp (helpCode, helpString); biometricCallback.onAuthenticationHelp (helpCode, helpString); }

Visbeidzot, mums jāpiesauc Biometriskā profila piemēra autentificēšanas () metode:

myBiometrPrompt.authenticate (promptInfo);

Android Pie biometriskās autentifikācijas ieviešana

Kad esat veicis visas iepriekš minētās darbības, galvenajai aktivitātei vajadzētu izskatīties šādi:

importēt androidx.appcompat.app.AppCompatActivity; importa androidx.biometric.BiometricPrompt; importa android.os.Bundle; importa java.util.concurrent.Executor; importa java.util.concurrent.Executors; importēt androidx.fragment.app.FragmentActivity; importa android.util.Log; importa android.view.View; importa androidx.annotation.NonNull; publiskās klases MainActivity paplašina AppCompatActivity {privātu statisku galīgo virkni TAG = MainActivity.class.getName (); @Override aizsargāts tukšums onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Izveidojiet pavedienu baseinu ar vienu pavedienu // Executor newExecutor = Executors.newSingleThreadExecutor (); FragmentAktivitātes aktivitāte = šī; // Sāciet klausīties autentifikācijas notikumus. CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} cits {// Print a to Logcat // Log.d (TAG, "Notikusi neatgūstama kļūda");}}) // onAuthenticationSucceched tiek izsaukts, ja veiksmīgi tiek saskaņots pirkstu nospiedums. // @Orride public void onAuthenticationSucceched (@NonNull BiometricPrompt.AuthenticationResult rezultāts) {super.onAuthenticationSucceched (rezultāts); // Drukāt Logcat / Log.d (TAG, "Fingerprint") veiksmīgi atpazīts ");} // onAuthenticationFailed tiek izsaukts, ja pirksta nospiedums neatbilst // @Override public void onAuthenticationFailed () {super.onAuthenticationFailed (); // Drukāt žurnālā kaķis // Log.d (TAG, "Pirkstu nospiedums nav atpazīts"); }}); // Izveidojiet instanci BiometricPrompt // galīgais BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () // Pievienojiet dialogam nedaudz tekstu // .setTitle ("Virsraksta teksts iet šeit") .setSubtitle ("Apakšvirsraksts iet šeit" ) .setDescription ("Šis ir apraksts") .setNegativeButtonText ("Atcelt") // Veidot dialogu // .build (); // Piešķiriet onClickListener lietotnes pogai “Autentifikācija” // findViewById (R.id.launchAuthentication) .setOnClickListener (jauns View.OnClickListener () {@Override public void onClick (View v) {myBiometricPrompt.authenticate (promptInfo); }); }}

Projekta pārbaude

Tagad, kad esat izveidojis savu projektu, ir pienācis laiks to izmēģināt un pārliecināties, vai tas jūsu lietotnei patiešām pievieno pirkstu nospiedumu autentifikāciju!

Lai palaistu šo projektu, jums būs nepieciešams vai nu fizisks viedtālrunis vai planšetdators, kurā darbojas operētājsistēma Android Pie, vai Android virtuālā ierīce (AVD), kas izmanto Android P vai jaunāku priekšskatījumu.

Jums ierīcē būs jāreģistrē arī vismaz viens pirkstu nospiedums. Ja izmantojat fizisku Android ierīci, veiciet tālāk norādītās darbības.

  • Nostipriniet bloķēšanas ekrānu ar PIN, paroli vai zīmējumu, ja vēl neesat to izdarījis (dodieties uz sadaļu “Iestatījumi> Bloķēšanas ekrāns un drošība> Ekrāna bloķēšanas tips> Raksts / Piespraude / Parole” un pēc tam izpildiet ekrānā redzamos norādījumus).
  • Palaidiet ierīces lietojumprogrammu “Iestatījumi”.
  • Atlasiet “Bloķēt ekrānu un drošību”.
  • Atlasiet “Pirkstu nospiedumu skeneris”.
  • Izpildiet norādījumus, lai reģistrētu vienu vai vairākus pirkstu nospiedumus.

Android virtuālajām ierīcēm nav fiziska pieskāriena sensora, tāpēc jums būs jāimitē pieskāriena notikums:

  • Palaidiet AVD, ja vēl neesat to izdarījis.
  • Līdzās AVD redzēsit pogu joslu. Atrodiet trīspunktu pogu “Vairāk” (kur kursors ir novietots nākamajā ekrānuzņēmumā) un noklikšķiniet uz tā. Tiek atvērts logs “Extended Controls”.
  • Paplašināto vadības ierīču logā atlasiet “Pirkstu nospiedums”. Tas atver vadības ierīču kopu, kurā var atdarināt dažādus pieskāriena notikumus.
  • Atveriet nolaižamo izvēlni un izvēlieties pirksta nospiedumu, kuru vēlaties reģistrēt šajā ierīcē; Es izmantoju “1. pirkstu”.
  • Tagad pievērsīsim uzmanību emulētai ierīcei. Palaidiet AVD lietojumprogrammu “Iestatījumi” un atlasiet “Drošība un atrašanās vieta”.
  • Ja vēl neesat iestatījis PIN, paroli vai modeli, atlasiet “Ekrāna bloķēšana” un izpildiet ekrānā redzamos norādījumus, lai nostiprinātu bloķēšanas ekrānu, pēc tam pārejiet atpakaļ uz galveno ekrānu “Iestatījumi> Drošība un atrašanās vieta”.
  • Atlasiet “Pirkstu nospiedums”, kam seko “Pievienot pirkstu nospiedumu”.
  • Tagad jums tiks piedāvāts piespiest pirkstu pieskāriena sensoram. Tā vietā turpiniet noklikšķināt uz “Pieskarieties sensoram”, līdz tiek parādīts “Pirkstu nospiedums pievienots”.

  • Noklikšķiniet uz “Gatavs”.
  • Ja vēlaties reģistrēt papildu pirkstu nospiedumus, tad noskalojiet un atkārtojiet iepriekš minētās darbības.

Kad esat reģistrējis vismaz vienu pirkstu nospiedumu, jūs esat gatavs pārbaudīt savu lietojumprogrammu. Es pārbaudīšu, kā mūsu lietojumprogramma apstrādā trīs dažādus scenārijus:

  • Lietotājs mēģina autentificēties, izmantojot reģistrētu pirkstu nospiedumu.
  • Lietotājs mēģina autentificēties, izmantojot pirkstu nospiedumu, kas šajā ierīcē nav reģistrēts.
  • Lietotājs mēģina autentificēties, izmantojot nereģistrētus pirkstu nospiedumus, vairākas reizes un ātri pēc kārtas.

Mēģināsim autentificēties, izmantojot pirksta nospiedumu, ko tikko reģistrējām savā ierīcē:

  • Pārliecinieties, vai skatāties Android Studio logcat Monitor, jo tas parādīsies dažādās jūsu lietojumprogrammas.

  • Instalējiet lietojumprogrammu testa ierīcē.
  • Pieskarieties lietojumprogrammas pogai “Autentificēt ar pirkstu nospiedumu”. Parādīsies pirkstu nospiedumu autentifikācijas dialogs.
  • Ja izmantojat fizisku ierīci, tad piespiediet un turiet pirksta galu pret ierīces skārienjūtīgo sensoru. Ja izmantojat AVD, izmantojiet pogu “Pieskarties sensoram”, lai simulētu pieskāriena notikumu.
  • Pārbaudiet Logcat Monitor. Ja autentifikācija bija veiksmīga, jums vajadzētu redzēt sekojošo: “Pirkstu nospiedums tika veiksmīgi atpazīts”

Tālāk redzēsim, kas notiek, ja mēģinām autentificēties, izmantojot pirkstu nospiedumu, kas šajā ierīcē nav reģistrēts:

  • Vēlreiz pieskarieties lietotnes pogai “Autentificēt ar pirkstu nospiedumu”.
  • Ja izmantojat AVD, izmantojiet logu “Paplašinātās vadīklas”, lai atlasītu pirksta nospiedumu nav reģistrēts šajā ierīcē; Es izmantoju “Finger 2”. Noklikšķiniet uz pogas “Pieskarties sensoram”.
  • Ja izmantojat fizisku Android viedtālruni vai planšetdatoru, nospiediet un turiet pirksta galvu pret ierīces skārienjūtīgo sensoru - pārliecinieties, vai izmantojat pirkstu, kas šajā ierīcē nav reģistrēts!
  • Pārbaudiet Android Studio žurnālu Logcat, tagad tam vajadzētu parādīt “pirkstu nospiedumu neatpazīst”.

Kā jau minēts, BiometrPrompt API automātiski apstrādā pārmērīgus neveiksmīgus autentifikācijas mēģinājumus. Lai pārbaudītu šo funkcionalitāti:

  • Pieskarieties savas lietotnes pogai “Autentificēt ar pirkstu nospiedumu”.
  • Mēģiniet ātri autentificēt vairākas reizes pēc kārtas, izmantojot nereģistrētu pirkstu nospiedumu.
  • Pēc dažiem mēģinājumiem dialoglodziņam vajadzētu aizvērties automātiski. Pārbaudiet Android Studio žurnālu Logcat, un jums vajadzētu redzēt šādus paziņojumus: “Radās neatgriezeniska kļūda.”

Pilnu lietojumprogrammu var lejupielādēt no GitHub.

Iesaiņošana

Šajā rakstā mēs izpētījām Android Pie jauno BiometrPrompt API, kas ļauj lietotnei viegli pievienot pirkstu nospiedumu autentifikāciju. Vai jūs domājat, ka BiometrPrompt ir uzlabojums iepriekšējām Android pirkstu nospiedumu autentifikācijas metodēm? Paziņojiet mums komentāros zemāk!

Video redaktoriem šobrīd ir liel piepraījum. Jū varat nopelnīt diezgan labu iztiku, trādājot ar ārštata darbu, rediģējot reklāma, TV šovu, dokumentālā filma, interneta klipu, pretrunīgi vērtētu mūzika...

alokāmā ierīce vecum ir atkarīg no mum! Vai vimaz ta notik paviam drīz, gaidot nelielu kavēšano.Lai vai kā, liela daļa nozare analītiķu uzkata, ka aliekamie viedtālruņi ir nākotne. Ta nozīmē, ka arī n...

Lasiet Šodien