بدءًا من الإصدار التجريبي 2 من Android 15، مع استخدام الإصدار androidx.credentials:1.5.0-alpha01، يمكن للمطوّرين ربط طرق عرض معيّنة، مثل ملف شخصي أو حقل كلمة مرور، بطلبات "مدير بيانات الاعتماد". عندما يشدّد المستخدِم التركيز على أحد هذه العروض، يتم إرسال الطلب المقابل إلى "مدير المستندات المُعتمَدة". ويتم تجميع بيانات الاعتماد الناتجة على مستوى جميع مقدّمي الخدمات وعرضها في واجهات مستخدم الملء التلقائي، مثل الاقتراحات المضمّنة في لوحة المفاتيح أو الاقتراحات في القوائم المنسدلة. يمكن استخدام هذه الميزة كخيار احتياطي عندما يغلِق المستخدمون عن طريق الخطأ ملف اختيار حساب "مدير بيانات الاعتماد" ثم ينقرون على الحقول ذات الصلة.
مكتبة Jetpack androidx.credentials هي نقطة النهاية المفضّلة التي يمكن للمطوّرين استخدامها مع هذه الميزة.
الشكل 1: نتائج الملء التلقائي لبيانات الاعتماد باستخدام كلمة المرور ومفتاح المرور وميزة "تسجيل الدخول باستخدام حساب Google"
التنفيذ
لاستخدام "مدير بيانات الاعتماد" لعرض بيانات الاعتماد في نتائج الملء التلقائي، استخدِم التنفيذ العادي لإنشاء GetCredentialRequest
ثمّ اضبطه
على طرق العرض ذات الصلة. تكون طريقة معالجة الردّ متماثلة، سواء كان الردّ
يأتي من طلب البيانات من واجهة برمجة التطبيقات getCredential
أو PendingGetCredentialRequest
، كما هو موضح في المثال التالي.
أولاً، أنشئ GetCredentialRequest
:
Kotlin
// 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) )
Java
// Retrieves the user's saved password for your app. GetPasswordOption getPasswordOption = new GetPasswordOption(); // Get a passkey from the user's public key credential provider. GetPublicKeyCredentialOption getPublicKeyCredentialOption = new GetPublicKeyCredentialOption(requestJson); GetCredentialRequest getCredRequest = new GetCredentialRequest( Arrays.asList(getPasswordOption, getPublicKeyCredentialOption) );
بعد ذلك، استخدِم واجهة برمجة التطبيقات getCredential
. يؤدي ذلك إلى عرض أداة اختيار "مدير بيانات الاعتماد".
Kotlin
coroutineScope.launch { try { val result = credentialManager.getCredential( context = activityContext, // Use an activity-based context. request = getCredRequest ) handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } }
Java
coroutineScope.launch(new CoroutineScopeRunnable() { @Override public void run(@NonNull CoroutineScope scope) { try { GetCredentialResponse result = credentialManager.getCredential( activityContext, // Use an activity-based context. getCredRequest ); handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } } });
أخيرًا، فعِّل تجربة الملء التلقائي. اضبط getCredRequest
على ملفّات الاطّلاع ذات الصلة (مثل username, password
) لتفعيل نتائج بيانات الاعتماد في الملء التلقائي
عندما يتفاعل المستخدم مع ملفّات الاطّلاع هذه.
Kotlin
import androidx.credentials.PendingGetCredentialRequest usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) } passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) }
Java
import androidx.credentials.CredentialManagerViewHandler; import androidx.credentials.PendingGetCredentialRequest; CredentialManagerViewHandler.setPendingGetCredentialRequest( usernameEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } ) CredentialManagerViewHandler.setPendingGetCredentialRequest( passwordEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } )