क्रेडेंशियल मैनेजर को ऑटोमैटिक भरने की सुविधा के साथ इंटिग्रेट करें

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

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)
}