دليل التكامل لمصنعي المعدات الأصلية

توضح هذه المقالة كيفية معالجة المدخلات الدوارة في VHAL ، وتكوين البنية الخاصة بك لتضمين الخدمة الدوارة ، وكيفية تخصيص تجربة الدوران عبر جميع التطبيقات. بالنسبة لتطبيقات OEM المثبتة مسبقًا ، مثل المشغل الذي توفره الشركة المصنعة للمعدات الأصلية ، راجع مكتبة واجهة المستخدم للسيارة (مكتبة واجهة المستخدم للسيارة) .

VHAL

تدعم وحدة التحكم الدوارة الإجراءات التالية:

  • ادفع لأعلى ولأسفل ولليسار ولليمين.
  • قم بالتدوير في اتجاه عقارب الساعة وعكس اتجاه عقارب الساعة.
  • اضغط على زر الوسط.
  • اضغط على زر العودة.
  • اضغط على زر الصفحة الرئيسية.
  • اضغط على الأزرار الأخرى ، مثل الهاتف والوسائط.

راجع hardware/interfaces/automotive/vehicle/2.0/types.hal للحصول على وثائق حول خصائص النظام int32Values المقابلة.

يجب أن يتعامل VHAL مع هذه الإجراءات:

دفع

عندما يدفع المستخدم وحدة التحكم الدوارة لليمين ، يجب على VHAL استخدام خاصية HW_KEY_INPUT مع int32Values ​​التالية لإرسال حدث إلى Android:

  1. ACTION_DOWN
  2. KEYCODE_SYSTEM_NAVIGATION_RIGHT
  3. عرض الهدف.

عندما يقوم المستخدم بتحرير وحدة التحكم الدوارة ، يجب أن يستخدم VHAL نفس الخاصية ورمز المفتاح مع ACTION_UP . يجب أن تستخدم التنبيهات في اتجاهات أخرى رموز المفاتيح المقابلة.

لا توجد رموز مفاتيح للأقطار ولكن يمكن لـ VHAL الجمع بين حدث أفقي وعمودي لإنتاج قطري إذا كان الجهاز يدعم الأقطار. على سبيل المثال ، يجب أن ينتج عن التنبيه لأعلى ولليسار:

  • HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_DOWN
  • HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_DOWN

في أي من الطلبين (وبعد ذلك) ، يجب أن ينتج عن تحرير وحدة التحكم الدوارة:

  • HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_UP
  • HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_UP

يجوز للمستخدم دفع وحدة التحكم الدوارة في اتجاه عمودي قبل تحريرها. على سبيل المثال ، السيناريو التالي:

الاتجاه العمودي
الشكل 1. الاتجاه العمودي

هذا يجب أن يولد التسلسل التالي للأحداث:

  1. HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_DOWN
  2. HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_DOWN
  3. HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_UP
  4. HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_UP

يجب عدم تكرار أي أحداث أثناء الإمساك بوحدة التحكم الدوارة في اتجاه واحد.

استدارة

عندما يقوم المستخدم بتدوير وحدة التحكم الدوارة في اتجاه عقارب الساعة بواسطة أداة كشف واحدة (نقرة) ، يجب أن يستخدم HW_ROTARY_INPUT خاصية HW_ROTARY_INPUT مع int32Values ​​التالية لإرسال حدث إلى Android:

  1. ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION
  2. واحد (1) مكبس.
  3. عرض الهدف.

يجب تعيين الطابع الزمني للحدث على الوقت المنقضي بالنانو ثانية.

يجب أن يولد ماسك واحد (1) دوران عكس اتجاه عقارب الساعة نفس الحدث ولكن مع -1 لعدد وسائل الكشف.

إذا حدثت عدة عمليات اكتشاف للدوران في نفس الاتجاه في تتابع سريع ، فيجب أن تجمع VHAL بين أدوات الكشف في حدث واحد حتى لا تفرط في تحميل النظام بالأحداث. في هذه الحالة ، يجب أن يكون الطابع الزمني للحدث هو وقت حدوث أول اكتشاف للدوران. يجب أن تتضمن int32Values عدد النانو ثانية بين أدوات الكشف المتتالية للدوران.

على سبيل المثال ، التسلسل التالي للدورات:

  • في الوقت t0 ، قام المستخدم بتدوير ماسسة واحدة عكس اتجاه عقارب الساعة.
  • في الوقت t0 + 5 ns ، قام المستخدم بتدوير ماسسة واحدة عكس اتجاه عقارب الساعة.
  • في الوقت t0 + 8 ns ، قام المستخدم بتدوير ماسسة واحدة عكس اتجاه عقارب الساعة.

يجب أن يولد هذا الحدث:

  • الخاصية: HW_ROTARY_INPUT
  • الطابع الزمني: t0
  • int32Values :
    1. ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION
    2. -3 (ثلاث حواجز عكس اتجاه عقارب الساعة).
    3. عرض الهدف.
    4. 5 نانوثانية بين الحاجز الأول والثاني.
    5. 3 نانوثانية بين الحاجز الثاني والثالث.

زر المركز

عندما يضغط المستخدم على زر المركز ، يجب أن يستخدم HW_KEY_INPUT خاصية HW_KEY_INPUT مع int32Values التالية لإرسال حدث إلى Android:

  1. ACTION_DOWN
  2. KEYCODE_DPAD_CENTER
  3. عرض الهدف.

عندما يقوم المستخدم بتحرير وحدة التحكم الدوارة ، يجب أن يستخدم VHAL نفس الخاصية ورمز المفتاح مع ACTION_UP .

لا تقم بإنشاء أحداث متكررة عند الضغط باستمرار على زر الوسط.

زر العودة

عندما يضغط المستخدم على الزر "رجوع" ، يجب أن يستخدم HW_KEY_INPUT خاصية HW_KEY_INPUT مع int32Values التالية لإرسال حدث إلى Android:

  1. ACTION_DOWN
  2. KEYCODE_BACK
  3. عرض الهدف.

عندما يقوم المستخدم بتحرير وحدة التحكم الدوارة ، يجب أن يستخدم VHAL نفس الخاصية ورمز المفتاح مع ACTION_UP .

يجب عدم إنشاء أحداث متكررة أثناء الضغط على زر المركز.

زر الصفحة الرئيسية

تعامل مع زر الصفحة الرئيسية كما تفعل مع زر الرجوع ولكن باستخدام KEYCODE_HOME بدلاً من KEYCODE_BACK .

أزرار أخرى

إذا تضمنت وحدة التحكم الدوارة أي أزرار إضافية ، فيمكن لـ VHAL التعامل معها ولكن الشركة المصنعة تحبها لأنها لا تعتبر جزءًا من الروتاري من منظور Android. يتم التعامل معها عادةً مثل أزرار الرجوع والصفحة الرئيسية ولكن مع رموز مفاتيح مختلفة. على سبيل المثال ، KEYCODE_CALL أو KEYCODE_MUSIC .

تكوين التكوين

يتم توفير التنقل الدوار بواسطة خدمة إمكانية الوصول تسمى RotaryService . لتضمين هذه الخدمة في صورة النظام لجهازك ، أضف السطر التالي إلى ملف makefile الخاص بك:

PRODUCT_PACKAGES += CarRotaryController

قد ترغب أيضًا في تضمين الحزم التالية في إصدارات تصحيح الأخطاء:

يتم تمكين الخدمة الدوارة تلقائيًا عند بدء تشغيل الجهاز وعند حدوث تبديل المستخدم. هذا يضمن أن المستخدم يمكنه استخدام وحدة التحكم الدوارة أثناء الإعداد.

إذا كنت تستخدم نفس التصميم للسيارات المزودة بوحدة تحكم دوارة وبدونها ، فأضف CarRotaryController كما هو موضح أعلاه بحيث يتم تضمين الكود اللازم في الإنشاء. لمنع تمكين الخدمة الدوارة في السيارات غير الدوارة ، قم بإنشاء RRO ثابت لتراكب مورد سلسلة rotaryService في packages/services/Car/service بسلسلة فارغة. ستستخدم نفس البنية ، ولكن لديك تكوينات منفصلة للمنتج ، للأجهزة الدوارة وغير الدوارة. فقط الأخير يشمل التراكب.

التخصيص

يمكن لمصنعي المعدات الأصلية تخصيص منطق البحث عن التركيز وتسليط الضوء على التركيز وبعض العناصر الإضافية من خلال تراكبات الموارد في المواقع التالية:

  • توجد مكتبة car-ui في packages/apps/Car/libs/car-ui-lib
  • RotaryService في packages/apps/Car/RotaryController
  • يقع Core في frameworks/base/core

دفع التاريخ

يمكن لـ OEM تكوين ما إذا كان كل نوع من نوعين من محفوظات الدفع ممكّنًا أم لا ، وإذا كان الأمر كذلك ، فإن حجم ذاكرة التخزين المؤقت وسياسة انتهاء الصلاحية. يتم كل ذلك من خلال تجاوز موارد مكتبة واجهة المستخدم المختلفة للسيارة.

تركيز ذاكرة التخزين المؤقت للتاريخ

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
تخزن ذاكرة التخزين المؤقت FocusArea أحدث طريقة عرض مركزة داخل FocusArea بحيث يمكن التركيز عليها عند الرجوع إلى FocusArea . يمكن تكوين ذاكرة التخزين المؤقت هذه عن طريق تراكب موارد مكتبة واجهة المستخدم للسيارة التالية:

  • car_ui_focus_history_cache_type :
    1. تم تعطيل ذاكرة التخزين المؤقت.
    2. ستنتهي صلاحية ذاكرة التخزين المؤقت بعد مرور بعض الوقت (انظر أدناه).
    3. ذاكرة التخزين المؤقت لن تنتهي أبدا.
  • car_ui_focus_history_expiration_period_ms : كم مللي ثانية قبل انتهاء صلاحية ذاكرة التخزين المؤقت إذا تم ضبط نوع ذاكرة التخزين المؤقت على اثنين (2) (انظر أعلاه).

FocusArea مخبأ التاريخ

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
تخزن ذاكرة التخزين المؤقت هذه تاريخًا من التنبيهات بحيث يمكن للدفع في الاتجاه المعاكس إعادة التركيز إلى نفس منطقة التركيز FocusArea . يمكن تكوين ذاكرة التخزين المؤقت هذه عن طريق تراكب موارد مكتبة واجهة المستخدم للسيارة التالية:

  • car_ui_focus_area_history_cache_type :
    1. تم تعطيل ذاكرة التخزين المؤقت.
    2. تنتهي ذاكرة التخزين المؤقت بعد مرور بعض الوقت (انظر أدناه).
    3. ذاكرة التخزين المؤقت لا تنتهي أبدا.
  • car_ui_focus_area_history_expiration_period_ms : كم مللي ثانية قبل انتهاء صلاحية ذاكرة التخزين المؤقت إذا تم ضبط نوع ذاكرة التخزين المؤقت على 2 (انظر أعلاه).
  • car_ui_clear_focus_area_history_when_rotating : ما إذا كان سيتم إبطال ذاكرة التخزين المؤقت عندما يقوم المستخدم بتدوير وحدة التحكم.

دوران

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
يمكن أن يتجاوز المصنّع الأصلي للجهاز اثنين من موارد الأعداد الصحيحة في RotaryService لتحديد ما إذا كان هناك تسريع ، مثل تسريع الماوس ، للدوران:

  • rotation_acceleration_3x_ms : الفترة الزمنية (بالملي ثانية) المستخدمة لتحديد ما إذا كان يتعين على Google تسريع دوران وحدة التحكم لكشف الدوران. إذا كانت الفترة الفاصلة بين هذا الكاشف وماسح الدوران السابق أصغر من هذه القيمة ، فسيتم التعامل معها على أنها ثلاثة كاشفات للدوران. اضبط هذا على 2147483647 لتعطيل تسريع 3 ×.
  • rotation_acceleration_2x_ms : مشابه لـ rotation_acceleration_3x_ms . تستخدم لتسريع 2 ×. اضبط هذا على 2147483647 لتعطيل تسريع 2 ×.

يعمل التسريع بشكل أفضل عندما تكون هناك طوابع زمنية فردية لكل من حواجز الدوران ، كما هو مطلوب بواسطة VHAL. إذا لم تكن هذه متوفرة ، تفترض RotaryService أن مسافات الدوران متباعدة بشكل متساوٍ.

/**
     * Property to feed H/W rotary events to android
     *
     * int32Values[0] : RotaryInputType identifying which rotary knob rotated
     * int32Values[1] : number of detents (clicks), positive for clockwise,
     *                  negative for counterclockwise
     * int32Values[2] : target display defined in VehicleDisplay. Events not
     *                  tied to specific display must be sent to
     *                  VehicleDisplay#MAIN.
     * int32values[3 .. 3 + abs(number of detents) - 2]:
     *                  nanosecond deltas between pairs of consecutive detents,
     *                  if the number of detents is > 1 or < -1
     *
     * VehiclePropValue.timestamp: when the rotation occurred. If the number of
     *                             detents is > 1 or < -1, this is when the
     *                             first detent of rotation occurred.
     *
     * @change_mode VehiclePropertyChangeMode:ON_CHANGE
     * @data_enum RotaryInputType
     * @access VehiclePropertyAccess:READ
     */
    HW_ROTARY_INPUT = (
        0x0A20
        | VehiclePropertyGroup:SYSTEM
        | VehiclePropertyType:INT32_VEC
        | VehicleArea:GLOBAL),

تسليط الضوء على التركيز

يمكن لمصنّع المعدات الأصلية تجاوز إبراز التركيز الافتراضي في إطار عمل Android والعديد من موارد تسليط الضوء على التركيز في مكتبة واجهة المستخدم للسيارة.

تمييز التركيز الافتراضي

يوفر إطار عمل Android تمييزًا افتراضيًا للتركيز من خلال السمة selectableItemBackground . في Theme.DeviceDefault ، تشير هذه السمة إلى item_background.xml في Core . يمكن أن يقوم المصنّع الأصلي للجهاز بتراكب item_background.xml لتغيير تركيز التمييز الافتراضي القابل للرسم.

يجب أن يكون هذا الرسم القابل للرسم عادةً StateListDrawable ، والذي يعدل الخلفية بناءً على مجموعات مختلفة من الحالات ، بما في ذلك android:state_focused و android:state_pressed . عندما يستخدم المستخدم وحدة التحكم الدوارة لتركيز العرض ، سيكون android:state_focused true ، لكن android:state_pressed سيكون false . إذا ضغط المستخدم بعد ذلك على زر الوسط في وحدة التحكم الدوارة ، فسيكون كل من android:state_focused و android:state_pressed true بينما يضغط المستخدم على الزر. عندما يحرر المستخدم الزر ، فقط android:state_focused سيبقى true .

تستخدم مكتبة car-ui سمة مشتقة من Theme.DeviceDefault . نتيجة لذلك ، يؤثر هذا التراكب على التطبيقات التي تستخدم هذه المكتبة والتطبيقات التي تستخدم أي سمة مشتقة من Theme.DeviceDefault . لن يؤثر على التطبيقات التي تستخدم سمة غير ذات صلة ، مثل Theme.Material .

ركز على تسليط الضوء على الموارد في مكتبة واجهة المستخدم للسيارة

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

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
تُستخدم الموارد التالية للإشارة إلى الوقت الذي يتم فيه التركيز على أحد العروض دون الضغط عليه:

  • car_ui_rotary_focus_fill_color : لون التعبئة.
  • car_ui_rotary_focus_stroke_color : لون المخطط التفصيلي.
  • car_ui_rotary_focus_stroke_width : سمك المخطط التفصيلي.

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
تُستخدم الموارد التالية للإشارة إلى الوقت الذي يتم فيه التركيز على العرض والضغط عليه:

  • car_ui_rotary_focus_pressed_fill_color : لون التعبئة.
  • car_ui_rotary_focus_pressed_stroke_color : لون المخطط التفصيلي.
  • car_ui_rotary_focus_pressed_stroke_width : سمك المخطط التفصيلي.

أحيانًا يُعطى الزر لون خلفية صلبًا للفت انتباه المستخدم إليه ، كما في المثال الموضح. قد يؤدي هذا إلى صعوبة رؤية تمييز التركيز البؤري.

زر بخلفية صلبة
الشكل 2. زر بخلفية صلبة

في هذه الحالة ، يمكن للمطور تحديد تمييز تركيز مخصص باستخدام الألوان الثانوية :
  • ( Android 11 QPR3 ، Android 11 Car ، Android 12 )
    car_ui_rotary_focus_fill_secondary_color
    car_ui_rotary_focus_stroke_secondary_color
  • ( أندرويد 12 )
    car_ui_rotary_focus_pressed_fill_secondary_color
    car_ui_rotary_focus_pressed_stroke_secondary_color

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

تسليط الضوء على منطقة التركيز

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
يمكن FocusArea رسم نوعين من التمييز عندما يكون أحد أحفادها مركّزًا. يمكن استخدام كلاهما جنبًا إلى جنب ، إذا رغبت في ذلك. يتم تعطيل هذه الميزة افتراضيًا في AOSP ، ولكن يمكن تمكينها عن طريق تجاوز موارد مكتبة واجهة المستخدم للسيارة:

  • car_ui_enable_focus_area_foreground_highlight : ارسم تمييزًا أعلى FocusArea . في AOSP ، هذا الرسم هو مخطط تفصيلي حول FocusArea . يمكن لمصنعي المعدات الأصلية تجاوز car_ui_focus_area_foreground_highlight drawable.
  • car_ui_enable_focus_area_background_highlight : ارسم تمييزًا أعلى منطقة FocusArea ولكن خلف أحفادها. في AOSP ، هذا الرسم هو تعبئة صلبة. يمكن لمصنعي المعدات الأصلية تجاوز car_ui_focus_area_background_highlight drawable.

محررات أسلوب الإدخال

محررات أسلوب الإدخال (IME) هي طرق إدخال. على سبيل المثال ، لوحة مفاتيح على الشاشة.

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
يجب أن يقوم OEM بتراكب مورد سلسلة default_touch_input_method في RotaryService لتحديد اسم ComponentName لمحرر أسلوب الإدخال الذي يعمل باللمس. على سبيل المثال ، إذا كانت الشركة المصنعة للمعدات الأصلية تستخدم محرر أسلوب الإدخال (IME) المقدم مع Android Automotive ، فيجب عليهم تحديد com.google.android.apps.automotive.inputmethod/.InputMethodService .

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
إذا أنشأت الشركة المصنعة للمعدات الأصلية محرر أسلوب الإدخال (IME) خصيصًا لـ rotary ، فيجب تحديد اسم ComponentName الخاص به في مورد rotary_input_method . إذا كان هذا المورد متراكبًا ، فسيتم استخدام محرر أسلوب الإدخال المحدد عندما يتفاعل المستخدم مع الوحدة الرئيسية من خلال دفع وحدة التحكم الدوارة ودورانها وزر توسيطها. عندما يلمس المستخدم الشاشة ، سيتم استخدام محرر أسلوب الإدخال السابق. لا يؤثر زر الرجوع (والأزرار الأخرى الموجودة على وحدة التحكم الدوارة) على اختيار محرر أسلوب الإدخال. إذا لم يكن هذا المورد متراكبًا ، فلن يحدث أي تبديل لمحرر أسلوب الإدخال (IME). لا يدعم Carboard التدوير ، لذا لا يمكن للمستخدم إدخال نص من خلال وحدة التحكم الدوارة إذا لم يقدم المصنّع الأصلي للجهاز محرر أسلوب إدخال دوار.

RotaryIME هو محرر أسلوب إدخال تجريبي. على الرغم من كونها أساسية ، إلا أنها كافية لتجربة التبديل التلقائي لمحرر أسلوب الإدخال الموضح أعلاه. يمكن العثور على الكود المصدري لـ RotaryIME في packages/apps/Car/tests/RotaryIME/ .

التنبيهات خارج الشاشة

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

  1. إجراء عالمي محدد بواسطة AccessibilityService . على سبيل المثال ، GLOBAL_ACTION_BACK .
  2. رمز مفتاح ، مثل KEYCODE_BACK .
  3. نية لبدء نشاط يمثل عنوان URL.

( Android 11 QPR3 ، Android 11 Car ، Android 12 )
يتم تحديدها عن طريق تراكب موارد المصفوفة التالية في RotaryService :

  • off_screen_nudge_global_actions : مصفوفة من الإجراءات العامة يتم تنفيذها عندما يقوم المستخدم بدفع حافة الشاشة لأعلى أو لأسفل أو لليسار أو لليمين. لا يتم تنفيذ أي إجراء عام إذا كان العنصر ذي الصلة من هذه المصفوفة هو -1.
  • off_screen_nudge_key_codes : صفيف من الرموز الرئيسية لأحداث النقر للحقن عندما يدفع المستخدم لأعلى أو لأسفل أو لليسار أو لليمين من حافة الشاشة. لا يتم إدخال أي أحداث إذا كان العنصر ذي الصلة من هذه المصفوفة هو 0 ( KEYCODE_UNKNOWN ).
  • off_screen_nudge_intents : مجموعة نوايا لبدء نشاط عندما يدفع المستخدم لأعلى أو لأسفل أو لليسار أو لليمين من حافة الشاشة. لا يتم تشغيل أي نشاط إذا كان العنصر ذي الصلة من هذه المصفوفة فارغًا.

تكوينات أخرى

يجب عليك تراكب موارد RotaryService التالية:

  • ( Android 11 QPR3 ، Android 11 Car ، Android 12 )
    config_showHeadsUpNotificationOnBottom : قيمة منطقية لتمثيل ما إذا كان يجب عرض الإشعارات في الجزء السفلي بدلاً من الأعلى. هذا يجب أن يكون له نفس القيمة مثل config_showHeadsUpNotificationOnBottom Boolean Resource in frameworks/base/packages/CarSystemUI/res/values/config.xml
  • ( Android 11 QPR3 ، Android 11 Car ، Android 12 )
    notification_headsup_card_margin_horizontal : الهامش الأيسر والأيمن لنافذة إعلام التنبيه. هذا يجب أن يكون له نفس القيمة مثل notification_headsup_card_margin_horizontal _headsup_card_margin_horizontal مورد dimen في packages/apps/Car/Notification/res/values/dimens.xml
  • ( أندرويد 12 )
    excluded_application_overlay_window_titles application_overlay_window_titles مجموعة من عناوين النوافذ التي لا ينبغي اعتبارها نوافذ متراكبة. يجب أن يتضمن هذا عناوين نوافذ التطبيق التي تمثل TaskViews أو TaskDisplayAreas . بشكل افتراضي ، تحتوي هذه القائمة على "خرائط" فقط.

يمكنك تراكب مورد RotaryService التالي:

  • ( Android 11 QPR3 ، Android 11 Car ، Android 12 )
    long_press_ms : قيمة عدد صحيح لتمثيل عدد المللي ثانية التي يجب أن يتم الضغط على زر المركز بها لتشغيل ضغطة طويلة. يشير الصفر إلى ضرورة استخدام مهلة الضغط الطويلة الافتراضية للنظام. هذه هي القيمة الافتراضية.