BiometricPrompt का उपयोग करके, अपने ऐप में फ़िंगरप्रिंट प्रमाणीकरण जोड़ें

लेखक: Lewis Jackson
निर्माण की तारीख: 13 मई 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
BiometricPrompt का उपयोग करके, अपने ऐप में फ़िंगरप्रिंट प्रमाणीकरण जोड़ें - क्षुधा
BiometricPrompt का उपयोग करके, अपने ऐप में फ़िंगरप्रिंट प्रमाणीकरण जोड़ें - क्षुधा

विषय


आइए एक एप्लिकेशन बनाने के लिए BiometricPrompt एपीआई का उपयोग करें जो उपयोगकर्ता को फिंगरप्रिंट का उपयोग करके अपनी पहचान की पुष्टि करने की अनुमति देगा।

"खाली गतिविधि" टेम्पलेट का उपयोग करके, एंड्रॉइड स्टूडियो खोलें और एक नया प्रोजेक्ट बनाएं। जब संकेत दिया जाता है, तो अपनी परियोजना की न्यूनतम एसडीके को 28 या अधिक पर सेट करें, क्योंकि यह आपके आवेदन को एंड्रॉइड पाई से पहले किसी भी चीज पर इंस्टॉल होने से रोक देगा।

यदि आप अपने ऐप को Android उपकरणों की एक विस्तृत श्रृंखला तक पहुंच बनाना चाहते हैं, तो आपको यह जांचने की आवश्यकता है कि वर्तमान में आपके ऐप्लिकेशन का कौन सा संस्करण एंड्रॉइड पर इंस्टॉल किया गया है, और फिर डिवाइस के एपीआई स्तर के आधार पर, अलग-अलग बायोमेट्रिक प्रमाणीकरण को संभालें।

बायोमेट्रिक लाइब्रेरी जोड़ें

शुरू करने के लिए, अपने मॉड्यूल-स्तर build.gradle फ़ाइल को खोलें, और बायोमेट्रिक लाइब्रेरी के नवीनतम संस्करण को प्रोजेक्ट निर्भरता के रूप में जोड़ें:

निर्भरताएँ {कार्यान्वयन androidx.biometric: बॉयोमीट्रिक: 1.0.0-Alpha03

USE_BIOMETRIC अनुमति जोड़ें

बायोमेट्रिकप्रॉप्ट एपीआई आपको उन सभी अलग-अलग बायोमेट्रिक प्रमाणीकरण विधियों में टैप करता है जो डिवाइस को एक ही अनुमति के माध्यम से समर्थन करता है।


अपनी परियोजना का मेनिफेस्ट खोलें, और "USE_BIOMETRIC" अनुमति जोड़ें:

अपने एप्लिकेशन का लेआउट बनाएं

इसके बाद, हमारे एप्लिकेशन का लेआउट बनाएं। मैं एक एकल बटन जोड़ने जा रहा हूँ, जब टैप किया जाएगा, तो फिंगरप्रिंट प्रमाणीकरण संवाद लॉन्च किया जाएगा:

अपनी परियोजना के तार खोलें। xml फ़ाइल, और "ऑर्टिकल" स्ट्रिंग संसाधन जोड़ें:

BiometricPromptSample फिंगरप्रिंट से प्रमाणित करें

उपयोगकर्ता की पहचान को प्रमाणित करना

अब, आइए देखें कि आप बायोमेट्रिकप्रोम्पट का उपयोग करके उपयोगकर्ता की पहचान को कैसे प्रमाणित करते हैं।


बायोमेट्रिक प्रॉम्प्ट इंस्टेंस बनाएं

BiometricPrompt वर्ग में एक साथी बिल्डर () वर्ग शामिल होता है, जिसका उपयोग आप BiometricPrompt उदाहरण बनाने और प्रमाणीकरण आरंभ करने के लिए कर सकते हैं:

अंतिम बॉयोमीट्रिकप्रोम्प्ट। प्रोम्प्टइन्फो प्रॉम्प्टइन्फो = नया बायोमेट्रिकप्रोम्प्ट। प्रोम्प्टइन्फो.बाउटल ()

अपने बॉयोमीट्रिकप्रोम्प्ट उदाहरण का निर्माण करते समय, आपको प्रमाणीकरण संवाद में दिखाई देने वाले पाठ को परिभाषित करना होगा, और "नकारात्मक बटन" को अनुकूलित करना होगा, जो कि वह बटन है जो उपयोगकर्ता को प्रमाणीकरण रद्द करने की अनुमति देता है।

प्रमाणीकरण संवाद को कॉन्फ़िगर करने के लिए, आपको निम्नलिखित प्रदान करने की आवश्यकता होगी:

  • setTitle। फिंगरप्रिंट प्रमाणीकरण प्रॉम्प्ट का शीर्षक। (आवश्यक)
  • setSubtitle। फ़िंगरप्रिंट प्रमाणीकरण प्रॉम्प्ट का उपशीर्षक। (वैकल्पिक)
  • setDescription। एक अतिरिक्त विवरण जो आपके प्रमाणीकरण संवाद में प्रदर्शित किया जाएगा। (वैकल्पिक)
  • setNegativeButton (पाठ, निष्पादक, श्रोता)। यह नकारात्मक बटन का लेबल है, उदाहरण के लिए "रद्द करें" या "बाहर निकलें।" जब नकारात्मक बटन को कॉन्फ़िगर किया जाता है, तो आपको एक एक्सेक्यूटर उदाहरण और एक ओनलाइनस्टिकर प्रदान करना होगा ताकि उपयोगकर्ता प्रमाणीकरण संवाद को खारिज कर सके।

लेखन के समय, आइकन या प्रमाणीकरण डायलॉग में उपयोग की गई त्रुटि को अनुकूलित करना संभव नहीं था।

अंत में, आपको बिल्ड () को कॉल करना होगा। यह हमें निम्नलिखित देता है:

अंतिम BiometricPrompt.PromptInfo promptInfo = नया BiometricPrompt.PromptInfo.Bilder () (शीर्षक पाठ "यहाँ जाता है") .setSubtitle ("उपशीर्षक यहाँ जाता है") .setDescription ("यह विवरण है")। .build ();

प्रमाणीकरण कॉलबैक को संभालें

बायोमेट्रिकप्रॉमट उदाहरण को प्रमाणीकरण कॉलबैक विधियों का एक सेट सौंपा गया है जो आपके ऐप को प्रमाणीकरण प्रक्रिया के परिणामों के बारे में सूचित करेगा।

आपको इन सभी कॉलबैक को बायोमेट्रिकप्रॉप्ट.ऑथेंटिकेशनकॉलबैक क्लास उदाहरण में लपेटने की आवश्यकता होगी:

अंतिम बॉयोमीट्रिकप्रोटेप myBiometricPrompt = नया बायोमेट्रिकप्रोम्प्ट (गतिविधि, न्यू एक्सिक्यूटर, नया बायोमेट्रिकप्रोम्प्ट। ऑथेंटिकेशनकॉलबैक () {

अगला कदम कुछ, या सभी कॉलबैक विधियों को लागू कर रहा है:

1. onAuthenticationSucceeded ()

इस विधि को तब कहा जाता है जब डिवाइस पर पंजीकृत फिंगरप्रिंट में से किसी एक में फिंगरप्रिंट का सफलतापूर्वक मिलान किया जाता है। इस परिदृश्य में एक प्रमाणीकरण। ऑब्जेक्ट ऑब्जेक्ट onAuthenticationSucceeded कॉलबैक को पास किया जाता है और आपका ऐप तब इस सफल प्रमाणीकरण के जवाब में एक कार्य करेगा।

चीजों को सरल रखने में मदद करने के लिए, हमारा ऐप Android स्टूडियो के Logcat को प्रिंट करके जवाब देगा:

@Override सार्वजनिक शून्य onAuthenticationSucceeded (@NonNull BiometricPrompt.AuthenticationResult परिणाम) {super.onAuthenticationSucceeded (परिणाम); Log.d (TAG, "फ़िंगरप्रिंट सफलतापूर्वक पहचाना गया"); }

2. onAuthenticationFailed ()

स्कैन सफलतापूर्वक पूरा होने पर यह विधि चालू हो जाती है, लेकिन फिंगरप्रिंट डिवाइस पर पंजीकृत किसी भी प्रिंट से मेल नहीं खाता है। फिर, हमारा ऐप Logcat को प्रिंट करके इस प्रमाणीकरण घटना का जवाब देगा:

@Override सार्वजनिक शून्य onAuthenticationFailed () {super.onAuthenticationFailed (); Log.d (TAG, "फिंगरप्रिंट पहचाना नहीं गया"); }

3. onAuthenticationError

जब भी कोई अपरिवर्तनीय त्रुटि होती है और प्रमाणीकरण सफलतापूर्वक पूरा नहीं किया जा सकता, तो यह कॉलबैक शुरू हो जाता है। उदाहरण के लिए, शायद डिवाइस का टच सेंसर गंदगी या ग्रीस से ढंका है, उपयोगकर्ता ने इस डिवाइस पर कोई भी फिंगरप्रिंट दर्ज नहीं किया है, या एक पूर्ण बायोमेट्रिक स्कैन करने के लिए पर्याप्त मेमोरी उपलब्ध नहीं है।

यहां मेरे ऐप में उपयोग किया जा रहा कोड होगा:

@Override सार्वजनिक शून्य onAuthenticationError (int errorCode, @NonNull CharSequence irString) {super.onAuthenticationError (errorCode, irString); if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} और {{Log.d (TAG, "एक अपरिवर्तनीय त्रुटि हुई"); }}

4. onAuthenticationHelp

जब भी गैर-घातक त्रुटि होती है, onAuthenticationHelp विधि को कहा जाता है, और इसमें एक सहायता कोड और एक त्रुटि के बारे में और जानकारी प्रदान की जाती है।

हमारे कोड को सीधा रखने में मदद करने के लिए, मैं अपने ऐप में onAuthenticationHelp का उपयोग नहीं करूंगा, लेकिन एक कार्यान्वयन कुछ इस तरह दिखाई देगा:

@Override सार्वजनिक शून्य onAuthenticationHelp (int helpCode, CharSequence helpString) {super.onAuthenticationHelp (helpCode, helpString); biometricCallback.onAuthenticationHelp (हेल्पकोड, हेल्पस्ट्रिंग); }

अंत में, हमें बायोमेट्रिकप्रोम्प्ट उदाहरण के प्रमाणीकरण () विधि को कॉल करने की आवश्यकता है:

myBiometricPrompt.authenticate (promptInfo);

एंड्रॉइड पाई के बायोमेट्रिक प्रमाणीकरण को लागू करना

एक बार जब आप उपरोक्त सभी चरणों को पूरा कर लेते हैं, तो आपकी MainActivity को कुछ इस तरह दिखना चाहिए:

import androidx.appcompat.app.AppCompatActivity; import androidx.biometric.BiometricPrompt; आयात android.os.Bundle; आयात java.util.concurrent.Executor; आयात java.util.concurrent.Executors; import androidx.fragment.app.ragmentActivity; आयात android.util.Log; आयात android.view.View; import androidx.annotation.NonNull; सार्वजनिक वर्ग MainActivity का विस्तार AppCompatActivity {निजी स्टेटिक फाइनल स्ट्रिंग TAG = MainActivity.class.getName (); @Override संरक्षित शून्य onCreate (बंडल सहेजी गई InstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); // एक एकल सूत्र के साथ एक थ्रेड पूल बनाएँ। एक्सेक्यूटर newExecutor = Executors.newSingleThreadExecutor (); FragmentActivity activity = यह; // प्रमाणीकरण घटनाओं के लिए सुनना शुरू करें // अंतिम बायोमेट्रिकप्रोमैट myBiometricPrompt = नया बायोमेट्रिकप्रोम्प्ट (गतिविधि, न्यू एक्सिक्यूटर, नया बायोमेट्रिकप्रोम्प्ट। ऑथेंटिकेशनसीमबैक) ({@Override // इनऑथेंटिकेशनइरॉट कहा जाता है जब एक घातक त्रुटि होती है। // public void onAuthenticationError CharSequence इरस्ट्रीमिंग) {super.onAuthenticationError (errorCode, इरस्ट्रीमिंग); यदि (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {} और / तो Logcat पर लॉग इन करें // Log.d (TAG, "एक अपरिवर्तनीय त्रुटि हुई");}} // onAuthenticationSucceeded को तब कहा जाता है जब एक फिंगरप्रिंट का सफलतापूर्वक मिलान किया जाता है // @Override public void onAuthenticationSucceeded (@NonNull BiometricPrompt.AuthenticationResult result) "super .onAuthenticationSucceeded (परिणाम); // Print to Logcat // Logaz / TAG; सफलतापूर्वक मान्यता प्राप्त ");} // onAuthenticationFailed को उस समय कहा जाता है जब फिंगरप्रिंट मिलान नहीं करता है। cat // Log.d (TAG, "फिंगरप्रिंट पहचाना नहीं गया"); }}); // BiometricPrompt उदाहरण बनाएँ। // BiometricPrompt.PromptInfo promptInfo = नया BiometricPrompt.PromptInfo.Builder () // संवाद में कुछ पाठ जोड़ें // .setTitle ("शीर्षक पाठ यहाँ जाता है") .setSubtitle ("सबटाइटल यहाँ जाता है")। ) .सेटडेस्क्रिप्शन ("यह वर्णन है") ।सेटगेनेटिवबटनटैक्स्ट ("रद्द करें") // संवाद का निर्माण // .build (); // एप्लिकेशन के "ऑथेंटिकेशन" बटन // findViewById (R.id.launchAuthentication) .setOnClickListener (नया दृश्य .nClickListener) () {@Override public void onClick (देखें v) {myBiometricPrompt.authate.authpt.nuth पर ऑनक्लिक लिस्टनर को असाइन करें। }); }}

अपने प्रोजेक्ट का परीक्षण

अब आपने अपना प्रोजेक्ट बना लिया है, इसे परीक्षण में लगाने और यह देखने के लिए कि क्या यह वास्तव में आपके ऐप में फिंगरप्रिंट प्रमाणीकरण जोड़ता है!

इस प्रोजेक्ट को चलाने के लिए, आपको Android Pie या Android Android डिवाइस (AVD) पर चलने वाले Android स्मार्टफोन या टैबलेट की आवश्यकता होगी, जो Android P पूर्वावलोकन या उच्चतर का उपयोग कर रहा हो।

आपको अपने डिवाइस पर कम से कम एक फिंगरप्रिंट रजिस्टर करना होगा। यदि आप भौतिक Android डिवाइस का उपयोग कर रहे हैं, तो:

  • यदि आप पहले से ही "सेटिंग> लॉक स्क्रीन और सुरक्षा> स्क्रीन लॉक प्रकार> पैटर्न / पिन / पासवर्ड" और फिर ऑनस्क्रीन निर्देशों का पालन करके नेविगेट नहीं कर रहे हैं, तो अपने लॉकस्क्रीन को एक पिन, पासवर्ड या पैटर्न के साथ सुरक्षित करें।
  • अपने डिवाइस की "सेटिंग" एप्लिकेशन लॉन्च करें।
  • "लॉक स्क्रीन और सुरक्षा" चुनें।
  • "फिंगरप्रिंट स्कैनर" चुनें।
  • एक या अधिक फिंगरप्रिंट दर्ज करने के लिए निर्देशों का पालन करें।

एंड्रॉइड वर्चुअल डिवाइस में एक भौतिक स्पर्श सेंसर नहीं होता है, इसलिए आपको एक टच ईवेंट को अनुकरण करने की आवश्यकता होगी:

  • अपना AVD लॉन्च करें, यदि आप पहले से ही नहीं हैं।
  • AVD के साथ, आपको बटन की एक पट्टी दिखाई देगी। तीन-डॉटेड "अधिक" बटन ढूंढें (जहां कर्सर निम्नलिखित स्क्रीनशॉट में तैनात है) और इसे क्लिक करें। यह "विस्तारित नियंत्रण" विंडो लॉन्च करता है।
  • विस्तारित नियंत्रण विंडो में, "फ़िंगरप्रिंट" चुनें, यह नियंत्रणों का एक सेट खोलता है, जहां आप विभिन्न स्पर्श घटनाओं का अनुकरण कर सकते हैं।
  • ड्रॉपडाउन मेनू खोलें, और उस फिंगरप्रिंट को चुनें जिसे आप इस डिवाइस पर पंजीकृत करना चाहते हैं; मैं "फिंगर 1." का उपयोग कर रहा हूं
  • अब, हमारा ध्यान उत्सर्जित डिवाइस पर जाने दें। AVD के "सेटिंग" एप्लिकेशन को लॉन्च करें, और "सुरक्षा और स्थान" चुनें।
  • यदि आप पहले से ही एक पिन, पासवर्ड या पैटर्न सेट नहीं करते हैं, तो "स्क्रीन लॉक" चुनें और अपने लॉकस्क्रीन को सुरक्षित करने के लिए ऑनस्क्रीन निर्देशों का पालन करें, फिर मुख्य "सेटिंग्स> सुरक्षा और स्थान" स्क्रीन पर वापस जाएं।
  • "फ़िंगरप्रिंट" चुनें, इसके बाद "फ़िंगरप्रिंट जोड़ें"।
  • अब आपको अपनी उंगली को स्पर्श सेंसर से दबाने के लिए कहा जाएगा। इसके बजाय, "टच सेंसर" पर क्लिक करें जब तक आपको "फ़िंगरप्रिंट जोड़ा गया" दिखाई न दे।

  • "पूरा किया" पर क्लिक करें।
  • यदि आप अतिरिक्त उंगलियों के निशान को पंजीकृत करना चाहते हैं, तो उपरोक्त चरणों को कुल्ला और दोहराएं।

जब आप कम से कम एक फिंगरप्रिंट पंजीकृत कर लेते हैं, तो आप अपने आवेदन को परीक्षण के लिए तैयार कर लेते हैं। मैं यह परखने जा रहा हूं कि हमारा एप्लिकेशन तीन अलग-अलग परिदृश्यों को कैसे संभालता है:

  • उपयोगकर्ता एक पंजीकृत फिंगरप्रिंट का उपयोग करके प्रमाणित करने का प्रयास करता है।
  • उपयोगकर्ता एक फिंगरप्रिंट का उपयोग करके प्रमाणित करने का प्रयास करता है जो इस उपकरण पर पंजीकृत नहीं है।
  • उपयोगकर्ता कई बार और त्वरित उत्तराधिकार में अपंजीकृत उंगलियों के निशान का उपयोग करके प्रमाणित करने का प्रयास करता है।

आइए हम केवल अपने डिवाइस पर पंजीकृत फिंगरप्रिंट का उपयोग करके प्रमाणित करने का प्रयास करें:

  • सुनिश्चित करें कि आप Android Studio के Logcat Monitor को देख रहे हैं, क्योंकि यह वह जगह है जहाँ आपके एप्लिकेशन के विभिन्न एस दिखाई देंगे।

  • टेस्ट डिवाइस पर अपना एप्लिकेशन इंस्टॉल करें।
  • अपने एप्लिकेशन के "फिंगरप्रिंट के साथ प्रमाणीकरण" बटन पर टैप करें। फिंगरप्रिंट प्रमाणीकरण संवाद दिखाई देगा।
  • यदि आप एक भौतिक उपकरण का उपयोग कर रहे हैं, तो डिवाइस के टच सेंसर के खिलाफ अपनी उंगलियों को दबाकर रखें। यदि आप एक AVD का उपयोग कर रहे हैं, तो एक स्पर्श घटना का अनुकरण करने के लिए "सेंसर को स्पर्श करें" बटन का उपयोग करें।
  • लॉगकट मॉनिटर की जाँच करें। यदि प्रमाणीकरण सफल था, तो आपको निम्नलिखित देखना चाहिए: "फ़िंगरप्रिंट सफलतापूर्वक पहचाना गया"

इसके बाद, देखते हैं कि क्या होता है यदि हम इस उपकरण पर पंजीकृत फिंगरप्रिंट का उपयोग करके प्रमाणित करने का प्रयास करते हैं:

  • फिर से ऐप के “फिंगरप्रिंट के साथ प्रमाणीकरण” बटन पर टैप करें।
  • यदि आप AVD का उपयोग कर रहे हैं, तो एक फिंगरप्रिंट का चयन करने के लिए "विस्तारित नियंत्रण" विंडो का उपयोग करें नहीं है इस उपकरण पर पंजीकृत; मैं "फ़िंगर 2" का उपयोग कर रहा हूं, "सेंसर को टच करें" बटन पर क्लिक करें।
  • यदि आप एक भौतिक एंड्रॉइड स्मार्टफोन या टैबलेट का उपयोग कर रहे हैं, तो डिवाइस के टच सेंसर के खिलाफ अपनी उंगलियों को दबाकर रखें - सुनिश्चित करें कि आप इस डिवाइस पर पंजीकृत उंगली का उपयोग नहीं कर रहे हैं!
  • एंड्रॉइड स्टूडियो के लॉगकैट की जांच करें, यह अब एक "फिंगरप्रिंट पहचाना नहीं" प्रदर्शित होना चाहिए।

जैसा कि पहले ही उल्लेख किया गया है, बॉयोमीट्रिकप्रॉप्ट एपीआई स्वचालित रूप से अत्यधिक विफल प्रमाणीकरण प्रयासों को संभालती है। इस कार्यक्षमता का परीक्षण करने के लिए:

  • अपने ऐप के “फिंगरप्रिंट के साथ प्रमाणिक” बटन पर टैप करें।
  • एक अनरजिस्टर्ड फिंगरप्रिंट का उपयोग करते हुए, तेजी से उत्तराधिकार में कई बार प्रमाणित करने का प्रयास।
  • कुछ प्रयासों के बाद, संवाद बॉक्स अपने आप बंद हो जाना चाहिए। एंड्रॉइड स्टूडियो के लॉगकैट की जांच करें, और आपको निम्नलिखित देखना चाहिए: "एक अपरिवर्तनीय त्रुटि हुई।"

आप पूरा आवेदन GitHub से डाउनलोड कर सकते हैं।

समेट रहा हु

इस लेख में, हमने एंड्रॉइड पाई के नए बायोमेट्रिकप्रोम्प्ट एपीआई की खोज की, जिससे आप आसानी से अपने ऐप में फिंगरप्रिंट प्रमाणीकरण जोड़ सकते हैं। क्या आपको लगता है कि एंड्रॉइड के पिछले फिंगरप्रिंट प्रमाणीकरण तरीकों पर बायोमेट्रिकप्रॉप्ट एक सुधार है? नीचे टिप्पणी करके हमें बताएं!

VLC Media Player को संस्करण 3.0, in Vetinari ’में अद्यतन किया गया है।नया संस्करण क्रोमकास्ट और हार्डवेयर त्वरित वीडियो डिकोडिंग समर्थन लाता है।वीएलसी 3.0 सैमसंग डीएक्स, एंड्रॉइड ऑटो और क्रोमबुक जैसे प...

दुनिया 4 जी से 5 जी कनेक्टिविटी के संक्रमण के बीच में है, और यू.के. को कार्रवाई पर आने के लिए बहुत लंबा इंतजार नहीं करना पड़ेगा। वोडाफोन ने 3 जुलाई की लॉन्च की तारीख की पुष्टि करते हुए, बाजार के लिए अ...

आपको अनुशंसित