Android 15 के बीटा 2 वर्शन से, androidx.credentials:1.5.0-alpha01 के साथ मिलकर काम करने की सुविधा उपलब्ध है. इसकी मदद से, डेवलपर क्रेडेंशियल मैनेजर के अनुरोधों को, उपयोगकर्ता नाम या पासवर्ड वाले फ़ील्ड जैसे खास व्यू से लिंक कर सकते हैं. जब उपयोगकर्ता इनमें से किसी एक व्यू पर फ़ोकस करता है, तो क्रेडेंशियल मैनेजर को उससे जुड़ा अनुरोध भेजा जाता है. इसके बाद, क्रेडेंशियल इकट्ठा किए जाते हैं. ये क्रेडेंशियल, अलग-अलग सेवा देने वाली कंपनियों से इकट्ठा किए जाते हैं. इन्हें, अपने-आप भरने की सुविधा वाले यूज़र इंटरफ़ेस (यूआई) में दिखाया जाता है. जैसे, कीबोर्ड पर इनलाइन सुझाव या ड्रॉप-डाउन में दिखने वाले सुझाव. इस सुविधा का इस्तेमाल तब किया जा सकता है, जब उपयोगकर्ता गलती से क्रेडेंशियल मैनेजर के खाता चुनने वाले टूल को बंद कर देते हैं और फिर काम के फ़ील्ड पर टैप करते हैं.
डेवलपर, इस सुविधा के लिए Jetpack androidx.credentials लाइब्रेरी का इस्तेमाल कर सकते हैं.
पहली इमेज: पासवर्ड, पासकी, और
'Google से साइन इन करें' सुविधा का इस्तेमाल करके, क्रेडेंशियल के साथ अपने-आप भरने की सुविधा के नतीजे.
लागू करना
अपने-आप भरने की सुविधा के नतीजों में क्रेडेंशियल दिखाने के लिए, क्रेडेंशियल मैनेजर का इस्तेमाल करें. इसके लिए,
स्टैंडर्ड तरीके का इस्तेमाल करके GetCredentialRequest बनाएं. इसके बाद, इसे
काम के व्यू पर सेट करें. जवाब को हैंडल करने का तरीका एक ही होता है. भले ही, जवाब getCredential एपीआई कॉल से मिले या PendingGetCredentialRequest से. यहां एक उदाहरण दिया गया है.
सबसे पहले, GetCredentialRequest बनाएं:
// Retrieves the user's saved password for your app.
val getPasswordOption = GetPasswordOption()
// Get a passkey from the user's public key credential provider.
val getPublicKeyCredentialOption = GetPublicKeyCredentialOption(
requestJson = requestJson
)
val getCredRequest = GetCredentialRequest(
listOf(getPasswordOption, getPublicKeyCredentialOption)
)
इसके बाद, getCredential एपीआई को कॉल करें. इससे, क्रेडेंशियल मैनेजर का सिलेक्टर दिखता है.
coroutineScope {
try {
val result = credentialManager.getCredential(
context = activityContext, // Use an activity-based context.
request = getCredRequest
)
handleSignIn(result)
} catch (e: GetCredentialException) {
handleFailure(e)
}
}
आखिर में, अपने-आप भरने की सुविधा चालू करें. जब उपयोगकर्ता इन व्यू के साथ इंटरैक्ट करे, तो अपने-आप भरने की सुविधा में क्रेडेंशियल के नतीजे दिखाने के लिए, getCredRequest को काम के व्यू (जैसे, username, password) पर सेट करें.
usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest
) { response ->
handleSignIn(response)
}
passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest
) { response ->
handleSignIn(response)
}