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

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

سير العمل

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

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

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

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

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

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

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

توضّح الأقسام التالية كيفية ضبط طريقة الإدخال أو خدمة الملء التلقائي لتتيح الملء التلقائي المضمّن.

ضبط طرق الإدخال (IME) لتفعيل ميزة "الملء التلقائي المضمّن"

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

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

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

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

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

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