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

توضح هذه الصفحة كيفية معالجة المدخلات الدوارة في VHAL، وتكوين الإصدار الخاص بك ليشمل الخدمة الدوارة، وكيفية تخصيص تجربة الدوارة عبر جميع التطبيقات. بالنسبة لتطبيقات OEM المثبتة مسبقًا، مثل المشغل الذي توفره OEM، راجع Car UI Library (car-ui-library) .

فهال

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

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

راجع 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

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

استدارة

عندما يقوم المستخدم بتدوير وحدة التحكم الدوارة في اتجاه عقارب الساعة بواسطة كاشف واحد (نقر)، يجب على VHAL استخدام خاصية 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 نانوثانية بين الماسكة الثانية والثالثة.

زر الوسط

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

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

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

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

زر العودة

عندما يضغط المستخدم على زر الرجوع، يجب على VHAL استخدام خاصية 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 . لتضمين هذه الخدمة في صورة النظام لجهازك، أضف السطر التالي إلى ملف التعريف الخاص بك:

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 تكوين ما إذا كان كل نوع من نوعي محفوظات الدفع ممكّنًا أم لا، وإذا كان الأمر كذلك، حجم ذاكرة التخزين المؤقت وسياسة انتهاء الصلاحية. يتم كل ذلك عن طريق تجاوز موارد مكتبة واجهة المستخدم المختلفة للسيارة.

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

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

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

ذاكرة التخزين المؤقت لمحفوظات FocusArea

( اندرويد 11 QPR3، اندرويد 11 سيارة، اندرويد 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 : ما إذا كان سيتم إفراغ ذاكرة التخزين المؤقت عندما يقوم المستخدم بتدوير وحدة التحكم.

دوران

( اندرويد 11 QPR3، اندرويد 11 سيارة، اندرويد 12 )
يمكن لـ OEM تجاوز اثنين من الموارد الصحيحة في 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),

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

يمكن لـ OEM تجاوز تمييز التركيز الافتراضي في إطار عمل Android والعديد من موارد تمييز التركيز في مكتبة واجهة المستخدم للسيارة.

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

يوفر إطار عمل Android تمييزًا للتركيز الافتراضي من خلال السمة selectableItemBackground . في Theme.DeviceDefault ، تشير هذه السمة إلى item_background.xml في Core . يمكن لـ OEM تراكب 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-library سمة مشتقة من Theme.DeviceDefault . ونتيجة لذلك، يؤثر هذا التراكب على التطبيقات التي تستخدم هذه المكتبة والتطبيقات التي تستخدم أي سمة مشتقة من Theme.DeviceDefault . ولن يؤثر ذلك على التطبيقات التي تستخدم سمة غير ذات صلة، مثل Theme.Material .

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

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

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

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

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

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

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

زر مع خلفية صلبة
الشكل 2. زر ذو خلفية صلبة

في هذه الحالة، يمكن للمطور تحديد تمييز التركيز المخصص باستخدام الألوان الثانوية :
  • ( اندرويد 11 QPR3، اندرويد 11 سيارة، اندرويد 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

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

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

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

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

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

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

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

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

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

دفعات خارج الشاشة

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

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

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

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

تكوينات أخرى

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

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

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

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