خدمة التحكّم 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 (TIF)، وHDMI-CEC يجمع كل الأجهزة المتصلة معًا ويقلل من مشاكل التوافق. أنشأ Android خدمة نظام تُسمى HdmiControlService من أجل والتخفيف من هذه الشكاوى.

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

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

التصميم العام

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

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

مخطّط بياني يوضّح كيفية تنفيذ ميزة HDMI-CEC قبل الإصدار Android 5.0 وبعده

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

التنفيذ

انظر الرسم التخطيطي التالي لعرض مفصل لخدمة التحكم في 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) الذي يعالج وضع صوت النظام ووقت تشغيل التطبيقات في Chrome. ولا يمكن حاليًا استخدام أنواع الأجهزة الأخرى (الموالف والمسجّلة الذكية).

طبقة تجريد الأجهزة (HAL) لـ HDMI-CEC

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

الإصدار الميزات ملفات HAL
1 ضبط بيانات 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

منفذ 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.

إعدادات التحكم بالأجهزة الإلكترونية الاستهلاكية

يمكن ضبط سلوك HDMI-CEC في وقت الإصدار (بواسطة المصنّعين الأصليين للأجهزة باستخدام RRO) ووقت التشغيل. (من إنشاء HdmiControlManager @SystemApi).

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

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

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