إدارة وحدات التحكّم في التلفزيون

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

يتناول هذا الدليل متطلبات التعامل مع وحدات التحكّم في أجهزة التلفزيون.

عناصر التحكّم في الحدّ الأدنى من لوحة التحكّم

وحدة التحكّم التلقائية في جهاز التلفزيون هي لوحة التحكّم. وبشكل عام، يجب أن يكون تطبيقك قابلاً للتشغيل من وحدة تحكّم عن بُعد تتضمّن أزرارًا للأعلى والأسفل ولليسار ولليمين وللاختيار ورجوع والشاشة الرئيسية فقط. إذا كان تطبيقك عبارة عن لعبة تتطلّب عادةً وحدة تحكّم في الألعاب تتضمّن عناصر تحكّم إضافية، حاوِل إتاحة أسلوب اللعب باستخدام عناصر التحكّم هذه فقط. أو يمكنك تحذير المستخدم بوجوب استخدام وحدة تحكُّم وجعله يخرج من لعبتك بسلاسة باستخدام وحدة تحكُّم لوحة التحكّم.

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

إلغاء ربط وحدة التحكّم بالمقبض

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

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

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

<activity
  android:name="com.example.android.TvActivity"
  android:label="@string/app_name"
  android:configChanges="keyboard|keyboardHidden|navigation"
  android:theme="@style/Theme.Leanback">

  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
  </intent-filter>
  ...
</activity>

يتيح تغيير الإعدادات هذا للتطبيق مواصلة تشغيله من خلال حدث إعادة الربط، بدلاً من إعادة تشغيله باستخدام إطار عمل Android، ما لا يوفّر تجربة جيدة للمستخدم.

التعامل مع تباينات الإدخال في لوحة التحكّم

قد يكون لدى مستخدمي أجهزة التلفزيون أكثر من نوع واحد من وحدات التحكم التي يستخدمونها مع التلفزيون. على سبيل المثال، قد يكون لدى المستخدم ذراع التحكّم الأساسي في لوحة التحكّم ووحدة تحكّم في الألعاب. وقد تختلف رموز المفاتيح التي تقدّمها وحدة التحكّم في الألعاب عند استخدامها لأداء وظائف لوحة التحكّم عن رموز المفاتيح التي ترسلها لوحة التحكّم الأساسية.

التعامل مع التفاوتات في إدخال لوحة التحكم حتى لا يضطر المستخدم إلى تبديل وحدات التحكم لتشغيل تطبيقك. لمزيد من المعلومات حول التعامل مع صِيغ الإدخال، يمكنك الاطّلاع على معالجة إدخال لوحة الاتجاهات.

أحداث زرّ التعامل

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

أحداث واجهة مستخدم التلفزيون

عيّن سلوك واجهة مستخدم التلفزيون للأزرار التي تنشئ أنواع KeyEvent كما هو موضّح في الجدول التالي:

KeyEventالسُلوك
KEYCODE_BUTTON_B، KEYCODE_BACKرجوع
KEYCODE_BUTTON_SELECT وKEYCODE_BUTTON_A وKEYCODE_ENTER وKEYCODE_DPAD_CENTER وKEYCODE_NUMPAD_ENTERالاختيار
KEYCODE_DPAD_UP وKEYCODE_DPAD_DOWN وKEYCODE_DPAD_LEFT KEYCODE_DPAD_RIGHTالتنقّل

الأحداث الإعلامية

عندما يشاهد المستخدم الوسائط، عليك تعيين سلوك للأزرار التي تنشئ أنواع KeyEvent كما هو موضّح في الجدول التالي. إذا كان تطبيقك يتحكّم في MediaSession، استخدِم MediaControllerAdapter لطلب إحدى طرق MediaControllerCompat.TransportControls المعروضة في الجدول. تجدر الإشارة إلى أنّ أزرار الاختيار تعمل كأزرار "تشغيل" أو "إيقاف مؤقت" في هذا السياق.

KeyEventمكالمة TransportControlsالسُلوك
BUTTON_SELECT وBUTTON_A وENTER وDPAD_CENTER وKEYCODE_NUMPAD_ENTER play()تشغيل
BUTTON_START وBUTTON_SELECT وBUTTON_A وENTER وDPAD_CENTER وKEYCODE_NUMPAD_ENTER pause()إيقاف مؤقت
BUTTON_R1skipToNext()التخطّي إلى التالي
BUTTON_L1skipToPrevious()التخطي إلى السابق
DPAD_RIGHT وBUTTON_R2 وAXIS_RTRIGGER AXIS_THROTTLEfastForward()لقطات عابرة
DPAD_LEFT وBUTTON_L2 وAXIS_LTRIGGER AXIS_BRAKErewind()ترجيع
لا ينطبقstop()إيقاف

ملاحظة: عند استخدام MediaSession، يجب عدم إلغاء معالجة الأزرار الخاصة بالوسائط، مثل KEYCODE_MEDIA_PLAY أو KEYCODE_MEDIA_PAUSE. يشغّل النظام تلقائيًا طريقة MediaSession.Callback المناسبة.

توفير السلوك المناسب لزر الرجوع

يجب ألا يعمل زر الرجوع مطلقًا كمفتاح تبديل. على سبيل المثال، لا تستخدِمه لفتح قائمة وإغلاقها معًا. ولا تستخدمه إلا للانتقال إلى الخلف بنمط شريط التنقّل على الشاشات السابقة التي كان المشغّل عليها.

ونظرًا لأن زر الرجوع لا يؤدي إلا إلى التنقل الخطي والخلفي، يمكنك استخدامه لترك قائمة داخل التطبيق يفتحها زر مختلف والعودة إلى التطبيق. سيؤدي الضغط باستمرار على زر الرجوع إلى الانتقال في النهاية إلى الشاشة الرئيسية في Android TV. على سبيل المثال: تشغيل اللعبة > شاشة إيقاف اللعبة مؤقتًا > الشاشة الرئيسية للّعبة > الشاشة الرئيسية للّعبة في Android TV أو تشغيل البرنامج التلفزيوني > الشاشة الرئيسية لتطبيق التلفزيون > الشاشة الرئيسية لـ Android TV.

لمزيد من المعلومات عن التصميم للتنقّل، يمكنك الاطّلاع على تصميم التنقّل ذهابًا وإيابًا. للتعرّف على عملية التنفيذ، يُرجى الاطّلاع على توفير ميزة الرجوع المناسبة.

أذرع التحكّم في الألعاب

إتاحة استخدام عناصر لوحة التحكّم

خطِّط لمخطط عناصر التحكّم استنادًا إلى لوحة التحكّم، لأنّ مجموعة التحكّم هذه هي الإعداد التلقائي لأجهزة Android TV. ويجب أن يتمكّن اللاعب من استخدام لوحة التحكّم في جميع جوانب اللعبة، وليس فقط التحكّم في أسلوب اللعب الأساسي، ولكن أيضًا في التنقّل بين القوائم والإعلانات. لهذا السبب، يُرجى التأكّد من أنّ لعبة Android TV لا تشير إلى واجهة تعمل باللمس بلغة مثل "انقر هنا للمتابعة".

قد تكون كيفية تحديد تفاعل اللاعب مع وحدة التحكّم عاملاً أساسيًا لتحقيق تجربة مستخدم رائعة. ننصحك باتّباع أفضل الممارسات التالية:

  • الإبلاغ عن متطلبات وحدة التحكّم مقدمًا: استخدِم الوصف على Google Play لإطلاع اللاعبين على أي توقّعات متعلّقة بوحدات التحكّم. إذا كانت اللعبة أكثر ملاءمةً للوحة الألعاب المزوّدة بذراع تحكّم أكثر من تلك التي تحتوي على لوحة التحكّم فقط، يجب توضيح ذلك. واللاعب الذي يستخدم وحدة تحكّم غير مناسبة للعبة ما قد تكون تجربة لعبه سيئة ويمنحها تقييمًا سيئًا.
  • استخدام عملية ربط أزرار متّسقة: يُعدّ الربط السهل للأزرار عاملاً أساسيًا في تقديم تجربة جيدة للمستخدم. على سبيل المثال، التزم بالعادات المقبولة باستخدام الزرّ A من أجل القبول والزر B من أجل إلغاء. ويمكنك أيضًا توفير المرونة من خلال إعادة إمكانية إعادة الربط. لمزيد من المعلومات حول ربط الأزرار، راجِع إجراءات وحدة التحكّم المرتبطة.
  • اكتشاف إمكانات وحدة التحكّم وتعديلها وفقًا لذلك: اطلب من وحدة التحكّم معرفة إمكاناتها لتحسين المطابقة بين وحدة التحكّم واللعبة. على سبيل المثال، قد تقصد أن يقوم اللاعب بتوجيه كائن من خلال التلويح بوحدة التحكم في الهواء، ولكن إذا كانت وحدة التحكم في اللاعب تفتقر إلى جهاز قياس التسارع والجيروسكوب، فإن التلويح لن يعمل. يمكنك إجراء طلب بحث عن وحدة التحكّم، وفي حال لم تكن ميزة رصد الحركة متاحة، يمكنك التبديل إلى نظام تحكُّم بديل متاح. لمزيد من المعلومات حول إمكانات وحدة التحكّم الخاصة بطلب البحث، راجِع وحدات التحكّم في الدعم على جميع إصدارات Android.

استخدام الأزرار المناسبة

لا توفر بعض وحدات التحكم في الألعاب أزرار "البدء" أو "البحث" أو "القائمة". تأكد من أن واجهة المستخدم لا تعتمد على استخدام هذه الأزرار.

استخدام وحدات تحكّم متعدّدة

عندما يلعب أكثر من لاعب لعبة، يمتلك كل منها وحدة تحكّم خاصة به، من المهم ربط كل لاعب بوحدة تحكّم. للحصول على معلومات عن كيفية تحديد رقم وحدة التحكّم، يمكنك الاطّلاع على getControllerNumber().

إلغاء ربط وحدة التحكّم بالمقبض

عندما تكون وحدة التحكّم غير متصلة أثناء اللعب، يمكنك إيقاف اللعبة مؤقتًا وعرض مربّع حوار يطلب من المشغّل غير المتصل إعادة ربط وحدة التحكّم.

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

عرض تعليمات وحدة التحكّم

إذا كانت لعبتك تقدّم تعليمات مرئية للتحكّم في اللعبة، استخدِم صورة وحدة تحكُّم خالية من العلامات التجارية وتتضمّن فقط أزرارًا متوافقة مع نظام التشغيل Android.

للحصول على نماذج لصور لوحدة تحكّم متوافقة مع Android، يمكنك تنزيل نموذج لوحة ألعاب Android TV (ZIP). وهي تشتمل على وحدة تحكم بيضاء على خلفية سوداء ووحدة تحكم سوداء على خلفية بيضاء - كما هو موضح في الشكل 1 - كملف PNG وملف Adobe® Illustrator®.

الشكل 1. مثال لتعليمات وحدة التحكم باستخدام نموذج لوحة ألعاب Android TV.