دمج الملء التلقائي مع أدوات IME وخدمات الملء التلقائي

بدءًا من Android 11، يمكن للوحات المفاتيح ومحرّري طرق الإدخال الآخرين (IMEs) عرض اقتراحات الملء التلقائي مضمّنةً في النص أو في شريط اقتراحات أو بطريقة مشابهة بدلاً من عرض النظام للاقتراحات في قائمة. وبما أنّ اقتراحات الملء التلقائي قد تحتوي على بيانات خاصة، مثل كلمات المرور أو معلومات بطاقة الائتمان، يتم إخفاء الاقتراحات من أداة IME إلى أن يختار المستخدم إحداها. يجب تحديث خدمات IME وخدمات الملء التلقائي، مثل خدمات إدارة كلمات المرور، ل الاستفادة من هذه الميزة. إذا لم يكن IME أو خدمة الملء التلقائي يتيحان ميزة "الملء التلقائي" المضمّنة، يتم عرض الاقتراحات في قائمة، كما هو الحال في الإصدارات الأقدم من Android 11.

سير العمل

في هذه العملية، يشير IME إلى لوحة المفاتيح الحالية أو محرِّر إدخال آخر، ويعني موفِّر الاقتراحات الموفّر المناسب لاقتراح الملء التلقائي. بناءً على حقل الإدخال وإعدادات المستخدم، قد يكون موفِّر الاقتراح هو المنصة أو خدمة الملء التلقائي.

  1. يركز المستخدم على حقل إدخال يشغِّل ميزة الملء التلقائي، مثل كلمة مرور أو حقل إدخال بطاقة الائتمان.

  2. يطلب النظام الأساسي من IME الحالي وموفّر الاقتراحات المناسب معرفة ما إذا كانا يتيحان ميزة الملء التلقائي المضمّن. إذا كان أداة IME أو موفِّر الاقتراحات لا يوفّر ميزة "الملء التلقائي" المضمّن، سيظهر الاقتراح في قائمة، كما هو الحال في Android 10 والإصدارات الأقدم.

  3. تطلب المنصة من أداة IME تقديم طلب اقتراح. يحدِّد طلب الاقتراحات هذا الحد الأقصى لعدد الاقتراحات التي سيتم عرضها، ويقدِّم أيضًا مواصفات العرض لكل اقتراح. تحدِّد مواصفات العرض التقديمي عناصر مثل الحد الأقصى للحجم وحجم النص والألوان وبيانات الخط، ما يتيح لمقدِّم الاقتراحات مطابقة مظهر واجهة المستخدم لنظام الكتابة وأسلوبها.

  4. تطلب المنصة من مقدّم الاقتراحات تقديم ما يصل إلى العدد المطلوب من الاقتراحات. يتضمّن كل اقتراح طلب استدعاء لتضخيم View يحتوي على واجهة مستخدم الاقتراح.

  5. تُعلم المنصة واجهة معالجة الإدخال (IME) بأنّ الاقتراحات جاهزة. يعرض IME الاقتراحات من خلال استدعاء طريقة الاستدعاء لتضخيم View لكل اقتراح. لحماية معلومات المستخدم الخاصة، لا يعرض IME الاقتراحات في هذه المرحلة.

  6. إذا اختار المستخدم أحد الاقتراحات، يتم إبلاغ IME بالطريقة نفسها كما لو اختار المستخدم اقتراحًا من قائمة النظام.

توضّح الأقسام التالية كيفية ضبط IME أو خدمة الملء التلقائي لسماحهما بملء المحتوى تلقائيًا في النص.

ضبط أنظمة الكتابة الآلية (IME) لتتوافق مع ميزة الملء التلقائي المضمّن

يوضِّح هذا القسم كيفية ضبط ميزة IME لتتوافق مع ميزة الملء التلقائي المضمّن. إذا كان محرر أسلوب الإدخال (IME) لا يتيح الملء التلقائي المضمّن، ستعرض المنصة تلقائيًا اقتراحات الملء التلقائي في قائمة.

يجب أن يضبط IME السمة supportsInlinedSuggestions على true:

<input-method
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

عندما تحتاج المنصة إلى اقتراح ملء تلقائي، تستدعي InputMethodService.onCreateInlineSuggestionsRequest() طريقة IME. يجب تنفيذ هذه الطريقة. اعرض رمز InlineSuggestionsRequest يحدّد ما يلي:

  • عدد الاقتراحات التي يريدها IME
  • InlinePresentationSpec لكل اقتراح، لتحديد كيفية عرض الاقتراح

عندما تتوفّر للمنصة اقتراحات، يتم استدعاء طريقة onInlineSuggestionsResponse() في أداة IME، ما يؤدي إلى تمرير InlineSuggestionsResponse يحتوي على الاقتراحات. يجب تنفيذ هذه الطريقة. في عملية التنفيذ، استخدِم الإجراء InlineSuggestionsResponse.getInlineSuggestions() للحصول على قائمة الاقتراحات، ثم وسِّع كل اقتراح من خلال استدعاء الإجراء InlineSuggestion.inflate().

ضبط خدمات الملء التلقائي لتتوافق مع ميزة الملء التلقائي المضمّن

يصف هذا القسم كيفية ضبط خدمة الملء التلقائي لتتوافق مع ميزة "الملء التلقائي" المضمّنة. إذا كان تطبيقك لا يتيح الملء التلقائي المضمّن، ستظهر اقتراحات الملء التلقائي في قائمة على المنصة تلقائيًا.

يجب أن تضبط خدمة الملء التلقائي السمة supportsInlinedSuggestions علىtrue:

<autofill-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

عندما يحتاج IME إلى اقتراحات الملء التلقائي، تستدعي المنصة onFillRequest() طريقة خدمة الملء التلقائي، تمامًا كما تفعل في الإصدارات الأقدم من Android 11. ومع ذلك، يجب أن تُطلِق خدمتك أسلوب getInlineSuggestionsRequest() لعنصر FillRequest الذي تم تمريره للحصول على InlineSuggestionsRequest الذي أنشأه IME. يحدِّد العنصر InlineSuggestionsRequest عدد الاقتراحات المضمّنة المطلوبة و كيفية عرض كلّ اقتراح. إذا لم يكن IME يتيح الاقتراحات المضمّنة، تعرض الطريقة القيمة null.

تنشئ خدمة الملء التلقائي عناصر InlinePresentation ، حتى الحد الأقصى المطلوب في InlineSuggestionsRequest. يجب أن تمتثل عروضك التقديمية لقيود الحجم المحددة في InlineSuggestionsRequest. لإعادة اقتراحاتك إلى ميزة IME، اضغط على رمز Dataset.Builder.setValue() مرة واحدة لكل اقتراح. يقدّم نظام التشغيل Android 11 إصدارات من Dataset.Builder.setValue() تتيح استخدام الاقتراحات المضمّنة.