অটোফিলের সাথে শংসাপত্র ম্যানেজারকে একীভূত করুন

Android 15 Beta 2 থেকে শুরু করে, androidx.credentials:1.5.0-alpha01- এর সাথে যুক্ত হয়ে, ডেভেলপাররা ইউজারনেম বা পাসওয়ার্ড ফিল্ডের মতো নির্দিষ্ট ভিউগুলোকে ক্রেডেনশিয়াল ম্যানেজার রিকোয়েস্টের সাথে লিঙ্ক করতে পারবেন। যখন ব্যবহারকারী এই ভিউগুলোর কোনো একটিতে ফোকাস করেন, তখন সংশ্লিষ্ট রিকোয়েস্টটি ক্রেডেনশিয়াল ম্যানেজারে পাঠানো হয়। এর ফলে প্রাপ্ত ক্রেডেনশিয়ালগুলো বিভিন্ন প্রোভাইডার জুড়ে একত্রিত করা হয় এবং অটোফিল UI-তে, যেমন কিবোর্ডের ইনলাইন সাজেশন বা ড্রপ-ডাউন সাজেশনে, প্রদর্শন করা হয়। যখন ব্যবহারকারীরা ভুলবশত ক্রেডেনশিয়াল ম্যানেজার অ্যাকাউন্ট সিলেক্টরটি বন্ধ করে দেন এবং তারপর প্রাসঙ্গিক ফিল্ডগুলোতে ট্যাপ করেন, তখন এই ফিচারটি একটি ফলব্যাক হিসেবে ব্যবহার করা যেতে পারে।

এই ফিচারের জন্য ডেভেলপারদের ব্যবহারের ক্ষেত্রে Jetpack androidx.credentials লাইব্রেরিটিই হলো পছন্দের এন্ডপয়েন্ট।

অটোফিল ফলাফলে পরিচয়পত্র দেখানোর চিত্র।
চিত্র ১: পাসওয়ার্ড, পাসকি এবং গুগল দিয়ে সাইন ইন ব্যবহার করে ক্রেডেনশিয়ালসহ ফলাফল স্বয়ংক্রিয়ভাবে পূরণ করা।

বাস্তবায়ন

অটোফিল ফলাফলে ক্রেডেনশিয়াল দেখানোর জন্য ক্রেডেনশিয়াল ম্যানেজার ব্যবহার করতে, স্ট্যান্ডার্ড ইমপ্লিমেন্টেশন ব্যবহার করে একটি GetCredentialRequest তৈরি করুন এবং তারপর এটিকে প্রাসঙ্গিক ভিউগুলিতে সেট করুন। রেসপন্স হ্যান্ডলিং একই থাকে, তা getCredential API কল থেকে আসুক বা 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 API-টি কল করুন। এটি Credential Manager সিলেক্টরটি প্রদর্শন করবে।

coroutineScope {
    try {
        val result = credentialManager.getCredential(
            context = activityContext, // Use an activity-based context.
            request = getCredRequest
        )
        handleSignIn(result)
    } catch (e: GetCredentialException) {
        handleFailure(e)
    }
}

অবশেষে, অটোফিল অভিজ্ঞতাটি চালু করুন। ব্যবহারকারী যখন প্রাসঙ্গিক ভিউগুলির (যেমন username, password ) সাথে ইন্টারঅ্যাক্ট করবে, তখন অটোফিলে ক্রেডেনশিয়ালের ফলাফল চালু করার জন্য getCredRequest সেই ভিউগুলিতে সেট করুন।

usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
    getCredRequest
) { response ->
    handleSignIn(response)
}

passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
    getCredRequest
) { response ->
    handleSignIn(response)
}