نظام التحكم في الأجهزة الإلكترونية الاستهلاكية عالية الوضوح لواجهة الوسائط المتعددة (HDMI-CEC) في ما يتعلق بمنتجات الوسائط المتعددة الاستهلاكية للتواصل لتبادل المعلومات مع بعضها البعض. تتيح تقنية HDMI-CEC العديد من الميزات، مثل إرسال إشارة جهاز التحكّم عن بُعد والتحكّم في صوت النظام، ولكن من بين الميزات الأكثر رواجًا هي ميزة One Touch Play. تتيح ميزة "التشغيل بنقرة واحدة" لجهاز مصدر الوسائط تشغيل التلفزيون وتبديل منفذ الإدخال تلقائيًا، ما يغنيك عن البحث عن جهاز التحكّم عن بُعد بالتلفزيون للتبديل من جهاز Chromecast إلى مشغّل Blu-ray.
في نظام التشغيل Android 12، يتم ضبط ميزة التحكّم في الطاقة للشاشة المتصلة عبر HDMI مع ميزة التحكّم في الطاقة للشاشة الداخلية. عند تنشيط جهاز تشغيل HDMI، يحاول تنشيط التلفزيون المتصل ويصبح المصدر النشط الحالي من خلال ميزة "التشغيل بنقرة واحدة" في HDMI CEC. إذا انتقل الجهاز إلى وضع السكون أثناء كونه المصدر النشط الحالي، يحاول بعد ذلك إيقافه. التلفزيون المتصل.
إنّ توفير ميزة HDMI-CEC اختياري بشكل عام. ومع ذلك، تبنّت معظم الشركات المصنّعة ميزة HDMI-CEC لكي تعمل أجهزتها مع أجهزة الشركات الأخرى. تطبِّق كل شركة تصنيع معيار HDMI-CEC بطرق مختلفة، لذلك لا تتوافق الأجهزة مع بعضها دائمًا وتختلف الميزات المتاحة بين الأجهزة. بسبب هذا التباين، لا يمكن للمستهلكين افتراض بأمان أنّ المنتجَين اللذَين يُزعَم أنّهما متوافقان مع معيار CEC متوافقان تمامًا.
يساعد دعم HDMI-CEC 2.0 في تحسين التوافق بين أجهزة HDMI في حالة أجهزة الإرسال والاستقبال تدعم هذا الإصدار من المعيار.
الحل
من خلال تقديم إطار عمل إدخال Android TV (TIF)، يجمع HDMI-CEC
جميع الأجهزة المتصلة ويقلل من مشاكل التوافق.
أنشأ نظام Android خدمة نظام تُسمى HdmiControlService
بهدف
تخفيف هذه المشاكل.
من خلال توفير HdmiControlService
كجزء من Android
منظومة متكاملة للبيانات، يأمل Android في توفير ما يلي:
- تنفيذ قياسي لـ HDMI-CEC لجميع الشركات المصنعة، والذي تقليل عدم توافق الجهاز. في السابق، كان على الشركات المصنّعة تطوير التطبيقات الخاصة لـ HDMI-CEC أو استخدام حلول من جهات خارجية.
- هي خدمة تم اختبارها جيدًا مقارنةً بالعديد من أجهزة HDMI-CEC. في السوق. يجري Android أبحاثًا صارمة بشأن التوافق المشاكل التي تم رصدها بين المنتجات والحصول على نصائح مفيدة من الجهاز والتنفيذين ذوي الخبرة في التكنولوجيا. تم تصميم خدمة CEC للحفاظ على توازن صحي بين المعيار والتعديلات التي تم إجراؤها عليه حتى تتمكّن من التوافق مع المنتجات التي يستخدمها المستخدمون حاليًا.
التصميم العام
يتم ربط HdmiControlService
بباقي أجزاء النظام، مثل
إطار عمل إدخال التلفزيون (TIF) وخدمة الصوت وخدمة الطاقة، لتنفيذ
الميزات المختلفة التي يحدّدها المعيار.
اطّلِع على الرسم البياني التالي للاطّلاع على وصف للتبديل من وحدة تحكّم مخصّصة في تكنولوجيا CEC إلى تنفيذ لطبقة HDMI-CEC المخصّصة لتوفير واجهة برمجة تطبيقات بسيطة للأجهزة (HAL).

الشكل 1. خدمة التحكّم في HDMI الاستبدال
التنفيذ
انظر الرسم التخطيطي التالي لعرض مفصل لخدمة التحكم في HDMI.

الشكل 2: تفاصيل خدمة التحكّم في HDMI
في ما يلي المكونات الأساسية لتنفيذ HDMI-CEC بشكل صحيح على Android:
- توفِّر فئة المدير
HdmiControlManager
تطبيقات مميزة. مع واجهة برمجة التطبيقات. خدمات النظام، مثل خدمة "مدير إدخال التلفزيون" و"خدمة الصوت" استخدام الخدمة مباشرة. - تم تصميم الخدمة للسماح باستضافة أكثر من نوع واحد من الأخطاء المنطقية الخاص بك.
- يتم ربط واجهة 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، مثل خدمة البث المباشر على الإنترنت (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)
اللذَين يمكنهما إصدار الأمر One Touch Play ليصبحا المصدر
النشط، والنوع Audio System (5)
الذي يتعامل مع وضع صوت النظام وARC.
ولا يمكن حاليًا استخدام أنواع الأجهزة الأخرى (الموالف والمسجّلة الذكية).
HDMI-CEC HAL
تتيح واجهة برمجة التطبيقات HDMI-CEC HAL API لـ HdmiControlService
الاستفادة من
مورد الجهاز لإرسال/استلام أوامر HDMI-CEC وضبط الإعدادات اللازمة
والاتصال (اختياريًا) بالمعالج الدقيق في النظام الأساسي الأساسي الذي
التحكم في التحكم بالأجهزة الإلكترونية الاستهلاكية (CEC) بينما يكون نظام Android في وضع الاستعداد.
الإصدار | الميزات | ملفات HAL |
---|---|---|
1 | ضبط بيانات HAL (العناوين والميزات) إرسال أوامر HDMI-CEC سجِّل طلب إعادة الاتصال لتلقّي أوامر HDMI-CEC وأحداث hotplug. | IHdmiCec.hal IHdmiCecCallback.hal |
1.1 | التعرّف على أنواع HDMI-CEC 2.0 | @1.1::IHdmiCec.hal @1.1::IHdmiCecCallback.hal |
الاختبار
ويتم اختبار تطبيقات HDMI-CEC والتحقق منها من خلال اختبارات CTS وفقًا لـ مستندات HDMI-CEC CTS
HDMI-CEC 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
.
إعدادات CEC
يمكن ضبط سلوك HDMI-CEC في وقت الإنشاء (من قِبل المصنّعين الأصليّين للأجهزة باستخدام حِزم RRO) ووقت التشغيل
(من قِبل HdmiControlManager
@SystemApi).
أمثلة على إعدادات HDMI-CEC:
الإعدادات | Option |
---|---|
ما إذا تم تفعيل HDMI-CEC أو إيقافه. | مفعّلة غير مفعّلة |
نطاق رسائل التحكّم في الطاقة عبر HDMI-CEC التي أرسلها جهاز التشغيل. | إلى التلفزيون فقط إلى التلفزيون ونظام الصوت البث لا شيء |
بالنسبة إلى كل إعداد متوفّر حاليًا ومسموح به، يمكن للتطبيقات طلب البحث في وقت التشغيل.