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

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

سير العمل

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

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

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

  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() مرة واحدة لكل اقتراح. يوفّر الإصدار 11 من Android إصدارات من Dataset.Builder.setValue() تتيح استخدام الاقتراحات المضمّنة.