خدمة التحكم HDMI-CEC

يسمح معيار التحكم في إلكترونيات المستهلك لواجهة الوسائط المتعددة عالية الوضوح (HDMI-CEC) للمنتجات الاستهلاكية متعددة الوسائط بالتواصل وتبادل المعلومات مع بعضها البعض. يدعم HDMI-CEC العديد من الميزات، مثل التحكم عن بعد والتحكم في صوت النظام، ولكن واحدة من أكثر الميزات شيوعًا هي One Touch Play. يسمح One Touch Play لجهاز مصدر الوسائط بتشغيل التلفزيون وتبديل منفذ الإدخال الخاص به تلقائيًا، لذلك لا يتعين عليك البحث عن جهاز التحكم عن بعد الخاص بالتلفزيون للتبديل من Chromecast إلى مشغل Blu-ray.

مع نظام التشغيل Android 12، يتماشى التحكم في الطاقة للشاشة المتصلة عبر HDMI مع التحكم في الطاقة للشاشة الداخلية. عندما ينشط جهاز تشغيل HDMI، فإنه يحاول تنشيط التلفزيون المتصل ويصبح المصدر النشط الحالي من خلال HDMI CEC One Touch Play. إذا انتقل الجهاز إلى وضع السكون بينما هو المصدر النشط الحالي، فسيحاول بعد ذلك إيقاف تشغيل التلفزيون المتصل.

يعد دعم HDMI-CEC اختياريًا بشكل عام. ومع ذلك، فقد اعتمدت معظم الشركات المصنعة HDMI-CEC حتى تعمل أجهزتها مع أجهزة الشركات الأخرى. تطبق كل شركة مصنعة معيار HDMI-CEC بطرق مختلفة، لذلك لا تفهم الأجهزة دائمًا بعضها البعض وتختلف الميزات المدعومة بين الأجهزة. وبسبب هذا التباين، لا يمكن للمستهلكين أن يفترضوا بأمان أن المنتجين اللذين يطالبان بدعم CEC متوافقان تمامًا.

يساعد دعم HDMI-CEC 2.0 على تحسين التوافق بين أجهزة HDMI إذا كان كل من جهاز الإرسال والاستقبال يدعم هذا الإصدار من المعيار.

حل

مع تقديم Android TV Input Framework (TIF)، يجمع HDMI-CEC جميع الأجهزة المتصلة ويقلل من مشكلات التوافق. أنشأ Android خدمة نظام تسمى HdmiControlService للتخفيف من نقاط الألم هذه.

ومن خلال تقديم HdmiControlService كجزء من نظام Android البيئي، يأمل Android في توفير ما يلي:

  • تطبيق قياسي لـ HDMI-CEC لجميع الشركات المصنعة، مما يقلل من عدم توافق الأجهزة. في السابق، كان على الشركات المصنعة تطوير تطبيقاتها الخاصة لـ HDMI-CEC أو استخدام حلول الطرف الثالث.
  • خدمة تم اختبارها جيدًا مقابل العديد من أجهزة HDMI-CEC الموجودة بالفعل في السوق. يجري Android بحثًا دقيقًا حول مشكلات التوافق الموجودة بين المنتجات ويجمع النصائح المفيدة من منفذي الأجهزة ذوي الخبرة في التكنولوجيا. تم تصميم خدمة CEC للحفاظ على توازن صحي بين المعيار والتعديلات على هذا المعيار بحيث يعمل مع المنتجات التي يستخدمها الأشخاص بالفعل.

التصميم الكلي

يتم توصيل HdmiControlService ببقية النظام مثل TV Input Framework (TIF) وخدمة الصوت وخدمة الطاقة لتنفيذ الميزات المتنوعة التي يحددها المعيار.

راجع الرسم التخطيطي التالي للحصول على وصف للتحويل من وحدة تحكم CEC مخصصة إلى تنفيذ طبقة تجريد أجهزة HDMI-CEC الأبسط (HAL).

رسم تخطيطي يوضح كيفية تنفيذ HDMI-CEC قبل وبعد Android 5.0

الشكل 1. استبدال خدمة التحكم HDMI

تطبيق

راجع الرسم البياني التالي للحصول على عرض تفصيلي لخدمة التحكم في HDMI.

صورة توضح كيفية تفاصيل خدمة التحكم في HDMI

الشكل 2. تفاصيل خدمة التحكم في HDMI

فيما يلي المكونات الأساسية لتطبيق Android HDMI-CEC المناسب:

  • توفر فئة المدير HdmiControlManager تطبيقات مميزة مع واجهة برمجة التطبيقات (API). يمكن لخدمات النظام مثل خدمة TV Input Manager وخدمة الصوت استخدام الخدمة مباشرة.
  • تم تصميم الخدمة للسماح باستضافة أكثر من نوع واحد من الأجهزة المنطقية.
  • يتم توصيل HDMI-CEC بالجهاز عبر طبقة تجريد الأجهزة (HAL) لتبسيط التعامل مع اختلافات البروتوكول وآليات الإشارة بين الأجهزة. تعريف HAL ​​متاح لمصنعي الأجهزة لاستخدامه في تنفيذ طبقة HAL.

ملاحظة : يجب على الشركات المصنعة للأجهزة إضافة السطر التالي إلى PRODUCT_COPY_FILES في device.mk .

PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml

اعتمادًا على ما إذا كان جهازك عبارة عن جهاز حوض HDMI أو جهاز مصدر HDMI، تحتاج الشركات المصنعة للأجهزة إلى تعيين ro.hdmi.device_type في device.mk لكي تعمل HdmiControlService بشكل صحيح.

بالنسبة لأجهزة مصدر HDMI، مثل أجهزة Over the Top (OTT) أو أجهزة الاستقبال (STB)، قم بضبط:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4

بالنسبة لأجهزة حوض HDMI، مثل أجهزة التلفاز اللوحية، قم بضبط:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=0
  • لا يمكن لوحدة تحكم CEC الخاصة التي توفرها الشركة المصنعة للجهاز أن تتواجد مع HdmiControlService . يجب تعطيله أو إزالته. تأتي المتطلبات الشائعة لذلك من الحاجة إلى التعامل مع الأوامر الخاصة بالشركة المصنعة. يجب دمج معالج الأوامر الخاص بالشركة المصنعة في الخدمة عن طريق توسيعه/تعديله. يتم ترك هذا العمل للشركة المصنعة للجهاز ولم يتم تحديده بواسطة Android. لاحظ أن أي تغيير يتم إجراؤه في الخدمة للأوامر الخاصة بالشركة المصنعة يجب ألا يتداخل مع طريقة التعامل مع الأوامر القياسية وإلا فلن يكون الجهاز متوافقًا مع Android.
  • يتم حماية الوصول إلى خدمة HDMI-CEC بمستوى الحماية SignatureOrSystem . يمكن فقط لمكونات النظام أو التطبيقات الموضوعة في /system/priv-app الوصول إلى الخدمة. وذلك لحماية الخدمة من إساءة الاستخدام بواسطة التطبيقات ذات النوايا الضارة.

يدعم Android نوع TV/Display(0) Playback device(4) الذي يمكنه إصدار أمر التشغيل بلمسة واحدة ليصبح المصدر النشط Audio System (5) الذي يتعامل مع وضع صوت النظام وARC. أنواع الأجهزة الأخرى (الموالف والمسجل) غير مدعومة حاليًا.

HDMI-CEC هال

تتيح واجهة HDMI-CEC HAL API لـ HdmiControlService الاستفادة من مورد الأجهزة لإرسال/استقبال أوامر HDMI-CEC، وتكوين الإعدادات الضرورية، والتواصل (اختياريًا) مع المعالج الدقيق في النظام الأساسي الأساسي الذي سيتولى التحكم في CEC بينما يعمل Android النظام في وضع الاستعداد.

إصدار سمات ملفات هال
1.0 تكوين بيانات HAL (العناوين والميزات). أرسل أوامر HDMI-CEC. قم بتسجيل رد الاتصال لتلقي أوامر HDMI-CEC وأحداث التوصيل السريع. IHdmiCec.hal
IHdmiCecCallback.hal
1.1 تقديم أنواع HDMI-CEC 2.0 @1.1::IHdmiCec.hal
@1.1::IHdmiCecCallback.hal

اختبارات

يتم اختبار تطبيقات HDMI-CEC للأجهزة والتحقق منها عبر اختبارات CTS وفقًا لوثائق HDMI-CEC CTS .

اتش دي ام اي-سي اي سي 2.0

تدعم أجهزة Android المصدر (التشغيل) والمغسلة (لوحة التلفزيون) HDMI-CEC 2.0. يوفر HDMI-CEC 2.0 إمكانية تشغيل تفاعلي أفضل بين أجهزة HDMI وتحسينات على التحكم عن بعد واختبار الشهادات الأكثر شمولاً. بشكل عام، تعد تفاعلات HDMI-CEC 2.0 مع الأجهزة الأخرى أكثر كفاءة، مما يؤدي إلى تقليل حركة مرور HDMI-CEC بالإضافة إلى تفاعلات أسرع.

لكي يدعم الجهاز HDMI-CEC 2.0، يجب ضبط تكوين الجهاز والمستخدم لاستخدام HDMI-CEC 2.0. يجب أن يقوم تطبيق HAL أيضًا بالإبلاغ عن دعم HDMI-CEC 2.0 في المكالمات إلى IHdmiCec#getCecVersion .

تكوين لجنة الانتخابات المركزية

يمكن تكوين سلوك HDMI-CEC في كل من وقت الإنشاء (بواسطة مصنعي المعدات الأصلية الذين يستخدمون RROs) ووقت التشغيل (بواسطة HdmiControlManager @SystemApi).

أمثلة على إعدادات HDMI-CEC:

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

لكل إعداد متاح حاليًا ويمكن الاستعلام عن الخيارات المسموح بها بواسطة التطبيقات في وقت التشغيل.