دمج "مدير بيانات الاعتماد" مع ميزة "الملء التلقائي"
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
اعتبارًا من الإصدار التجريبي الثاني من Android 15، يمكن للمطوّرين ربط طرق عرض معيّنة، مثل حقول اسم المستخدم أو كلمة المرور، بطلبات "مدير بيانات الاعتماد"، وذلك عند استخدام الإصدار androidx.credentials:1.5.0-alpha01. عندما يركّز المستخدم على أحد طرق العرض هذه، يتم إرسال الطلب المقابل إلى "مدير بيانات الاعتماد". يتم تجميع بيانات الاعتماد الناتجة من مختلف مقدّمي الخدمات وعرضها في واجهات المستخدم الخاصة بميزة "الملء التلقائي"، مثل الاقتراحات المضمّنة في لوحة المفاتيح أو الاقتراحات في القائمة المنسدلة.
يمكن استخدام هذه الميزة كحلّ احتياطي عندما يرفض المستخدمون عن طريق الخطأ أداة اختيار الحساب في Credential Manager ثم ينقرون على الحقول ذات الصلة.
مكتبة Jetpack androidx.credentials هي نقطة النهاية المفضّلة التي يمكن للمطوّرين استخدامها لهذه الميزة.
الشكل 1: نتائج الملء التلقائي باستخدام بيانات الاعتماد وكلمة المرور ومفتاح المرور و"تسجيل الدخول باستخدام Google"
التنفيذ
لاستخدام Credential Manager لعرض بيانات الاعتماد في نتائج الملء التلقائي، استخدِم عملية التنفيذ العادية لإنشاء GetCredentialRequest ثم اضبطها على طرق العرض ذات الصلة. تكون معالجة الردود هي نفسها، سواء كان الرد
ناتجًا عن طلب البيانات من واجهة برمجة التطبيقات getCredential أو PendingGetCredentialRequest، كما هو موضّح في المثال التالي.
أولاً، أنشئ GetCredentialRequest:
// Retrieves the user's saved password for your app.valgetPasswordOption=GetPasswordOption()// Get a passkey from the user's public key credential provider.valgetPublicKeyCredentialOption=GetPublicKeyCredentialOption(requestJson=requestJson)valgetCredRequest=GetCredentialRequest(listOf(getPasswordOption,getPublicKeyCredentialOption))
بعد ذلك، استدعِ واجهة برمجة التطبيقات getCredential. يؤدي ذلك إلى عرض أداة اختيار "مدير بيانات الاعتماد".
coroutineScope{try{valresult=credentialManager.getCredential(context=activityContext,// Use an activity-based context.request=getCredRequest)handleSignIn(result)}catch(e:GetCredentialException){handleFailure(e)}}
أخيرًا، فعِّل تجربة الملء التلقائي. اضبط getCredRequest على طرق العرض ذات الصلة (مثل username, password) لتفعيل نتائج بيانات الاعتماد في الملء التلقائي عندما يتفاعل المستخدم مع طرق العرض هذه.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["Starting with Android 15 Beta 2, paired with\n[androidx.credentials:1.5.0-alpha01](/jetpack/androidx/releases/credentials#version_15_2), developers can link specific views like\nusername or password fields with Credential Manager requests. When the user\nfocuses on one of these views, the corresponding request is sent to Credential\nManager. The resulting credentials are aggregated across providers and displayed\nin autofill UIs, such as keyboard inline suggestions, or drop-down suggestions.\nThis feature can be used as a fallback when users accidentally dismiss the\nCredential Manager account selector and then tap on the relevant fields.\n\nThe ***Jetpack androidx.credentials*** library is the preferred endpoint for\ndevelopers to use for this feature.\n\n\u003cbr /\u003e\n\n\n**Figure 1:** Autofill results with credentials using password, passkey, and\nSign in with Google.\n| **Note:** This feature is only available for `View` objects at this time.\n\nImplementation\n\nTo use Credential Manager to show credentials in autofill results, use the\n[standard implementation](/identity/sign-in/credential-manager) to build a `GetCredentialRequest` and then set it\nto the relevant views. The response handling is the same, whether the response\ncomes from the `getCredential` API call or the `PendingGetCredentialRequest`, as\nshown in the following example.\n\nFirst, construct a `GetCredentialRequest`: \n\n // Retrieves the user's saved password for your app.\n val getPasswordOption = GetPasswordOption()\n\n // Get a passkey from the user's public key credential provider.\n val getPublicKeyCredentialOption = GetPublicKeyCredentialOption(\n requestJson = requestJson\n )\n\n val getCredRequest = GetCredentialRequest(\n listOf(getPasswordOption, getPublicKeyCredentialOption)\n )\n\nNext, call the `getCredential` API. This displays the Credential Manager\nselector. \n\n coroutineScope {\n try {\n val result = credentialManager.getCredential(\n context = activityContext, // Use an activity-based context.\n request = getCredRequest\n )\n handleSignIn(result)\n } catch (e: GetCredentialException) {\n handleFailure(e)\n }\n }\n\nFinally, enable the autofill experience. Set the `getCredRequest` to relevant\nviews (such as `username, password`) to enable credential results in autofill\nwhen the user interacts with these views.\n**Note:** The `setPendingGetCredentialRequest` is an *extension API* in the androidx.credentials library, and is called differently between Kotlin and Java. \n\n usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(\n getCredRequest\n ) { response -\u003e\n handleSignIn(response)\n }\n\n passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(\n getCredRequest\n ) { response -\u003e\n handleSignIn(response)\n }"]]