Android 15 Beta 2 से, डेवलपर androidx.credentials:1.5.0-alpha01 के साथ मिलकर, क्रेडेंशियल मैनेजर के अनुरोधों के साथ उपयोगकर्ता नाम या पासवर्ड फ़ील्ड जैसे खास व्यू लिंक कर सकते हैं. जब उपयोगकर्ता इनमें से किसी एक व्यू पर फ़ोकस करता है, तो Credential Manager को इससे जुड़ा अनुरोध भेजा जाता है. नतीजे के तौर पर मिले क्रेडेंशियल, सेवा देने वाली सभी कंपनियों से इकट्ठा किए जाते हैं. साथ ही, उन्हें ऑटोमैटिक भरने वाले यूज़र इंटरफ़ेस (यूआई) में दिखाया जाता है. जैसे, कीबोर्ड पर लाइन में दिखने वाले सुझाव या ड्रॉप-डाउन सुझाव. इस सुविधा का इस्तेमाल तब किया जा सकता है, जब उपयोगकर्ता गलती से क्रेडेंशियल मैनेजर खाते के सिलेक्टर को खारिज कर देते हैं और फिर काम के फ़ील्ड पर टैप करते हैं.
डेवलपर के लिए, इस सुविधा का इस्तेमाल करने के लिए Jetpack androidx.credentials लाइब्रेरी सबसे सही एंडपॉइंट है.
पहली इमेज: पासवर्ड, पासकी, और Google से साइन इन करने की सुविधा का इस्तेमाल करके, क्रेडेंशियल अपने-आप भरने के नतीजे.
लागू करना
ऑटोमैटिक भरने की सुविधा के नतीजों में क्रेडेंशियल दिखाने के लिए, Credential Manager का इस्तेमाल करें. इसके लिए, 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)
}