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

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