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

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

سير العمل

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

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

  2. يطلب النظام الأساسي من 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"/>

عندما تحتاج المنصة إلى اقتراح للملء التلقائي، فإنها تستدعي أداة IME InputMethodService.onCreateInlineSuggestionsRequest() . يجب تنفيذ هذه الطريقة. إرجاع 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() تتيح استخدام الاقتراحات المضمّنة.