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

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

سير العمل

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

  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() ، ويُدخل 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() لدعم الاقتراحات المضمّنة.