Biometric Kotlin: पूर्ण गाइड उदाहरणों के साथ
बायोमेट्रिक ऑथेंटिकेशन आधुनिक मोबाइल ऐप्स का एक अहम हिस्सा बन गया है। यह उपयोगकर्ताओं को फिंगरप्रिंट, फेस स्कैनर या आइरिस स्कैन के जरिए अपनी पहचान साबित करने की सुविधा देता है, जो पासवर्ड डालने से कहीं ज्यादा आसान और सुरक्षित है। Kotlin के लिए Biometric लाइब्रेरी (AndroidX का हिस्सा) Android डिवाइसों पर सभी बायोमेट्रिक सेंसर के साथ काम करने के लिए एक यूनिफाइड API प्रदान करती है।
इस लाइब्रेरी की ज़रूरत क्यों है? पहला, यह डेवलपर को अलग-अलग निर्माताओं के बायोमेट्रिक सेंसर के बीच के अंतर से बचाती है। दूसरा, यह अपने आप उन स्थितियों को संभालती है जब बायोमेट्री उपलब्ध न हो (जैसे डिवाइस में स्कैनर न हो) या ब्लॉक हो। तीसरा, यह लाइब्रेरी Android Keystore के साथ गहराई से जुड़ी है, जिससे क्रिप्टोग्राफिक रूप से सुरक्षित कीज़ बनाई जा सकती हैं जो उपयोगकर्ता के सफल ऑथेंटिकेशन के बाद ही इस्तेमाल हो सकती हैं।
इस लेख में हम Kotlin के लिए Biometric लाइब्रेरी के सभी पहलुओं को विस्तार से समझेंगे: इंस्टॉलेशन और बुनियादी उदाहरण से लेकर एडवांस तकनीकों और सामान्य गलतियों तक। आप सीखेंगे कि अपने ऐप में बायोमेट्रिक ऑथेंटिकेशन कैसे जोड़ें, इसे सुरक्षित और उपयोगकर्ता के लिए सुविधाजनक कैसे बनाएं।
इंस्टॉलेशन
अपने Kotlin Android प्रोजेक्ट में Biometric लाइब्रेरी का उपयोग करने के लिए, build.gradle (मॉड्यूल लेवल) फ़ाइल में निम्नलिखित डिपेंडेंसी जोड़ें:
dependencies {
implementation("androidx.biometric:biometric:1.2.0-alpha05")
}
साथ ही, सुनिश्चित करें कि AndroidManifest.xml फ़ाइल में बायोमेट्रिक सेंसर के उपयोग की अनुमति घोषित हो:
अगर आपका ऐप Android 12 (API 31) और उससे ऊपर के लिए है, तो बायोमेट्री के सटीक प्रकार की पहचान के लिए यह अनुमति भी जोड़ने की सलाह दी जाती है:
त्वरित शुरुआत: न्यूनतम कार्यशील उदाहरण
चलिए एक सरल Activity बनाते हैं, जो बटन दबाने पर बायोमेट्रिक ऑथेंटिकेशन शुरू करती है और परिणाम Toast में दिखाती है।
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.biometric.BiometricManager
import androidx.biometric.BiometricPrompt
import androidx.core.content.ContextCompat
import java.util.concurrent.Executors
class MainActivity : AppCompatActivity() {
private lateinit var biometricPrompt: BiometricPrompt
private lateinit var promptInfo: BiometricPrompt.PromptInfo
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val authButton: Button = findViewById(R.id.auth_button)
// जाँचें कि डिवाइस पर बायोमेट्री उपलब्ध है या नहीं
val biometricManager = BiometricManager.from(this)
when (biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG)) {
BiometricManager.BIOMETRIC_SUCCESS -> {
// बायोमेट्री उपलब्ध है, डायलॉग सेट करें
setupBiometricPrompt()
}
BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE -> {
Toast.makeText(this, "डिवाइस में बायोमेट्रिक सेंसर नहीं है", Toast.LENGTH_LONG).show()
}
BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE -> {
Toast.makeText(this, "बायोमेट्रिक सेंसर अस्थायी रूप से उपलब्ध नहीं है", Toast.LENGTH_LONG).show()
}
BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> {
Toast.makeText(this, "कोई बायोमेट्रिक डेटा पंजीकृत नहीं है