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

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

Workflow

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

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

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

  3. تطلب المنصة من أداة IME تقديم طلب اقتراح. يحدِّد طلب الاقتراح هذا الحدّ الأقصى لعدد الاقتراحات التي سيتم عرضها، كما يوفّر مواصفات العرض التقديمي لكل اقتراح. وتحدد مواصفات العرض التقديمي أشياء مثل الحد الأقصى للحجم وحجم النص والألوان وبيانات الخط، مما يسمح لمقدم الاقتراحات بمطابقة شكل ومظهر أداة 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 لكل اقتراح، وتحدّد كيفية تقديم الاقتراح.

عندما يكون لدى النظام الأساسي اقتراحات، يستدعي طريقة أداة IME onInlineSuggestionsResponse()، ويمرِّر 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() لإتاحة الاقتراحات المضمَّنة.