एचडीएमआई-सीईसी कंट्रोल सेवा

हाई-डेफ़िनिशन मल्टीमीडिया इंटरफ़ेस कंज़्यूमर इलेक्ट्रॉनिक्स कंट्रोल (एचडीएमआई-सीईसी) स्टैंडर्ड का इस्तेमाल करके मल्टीमीडिया उपभोक्ता प्रॉडक्ट एक-दूसरे के साथ जानकारी का लेन-देन करते हैं. एचडीएमआई-सीईसी की मदद से कई सुविधाएं काम करती हैं, जैसे कि रिमोट कंट्रोल पासथ्रू और सिस्टम ऑडियो कंट्रोल, लेकिन यह सबसे ज़्यादा लोकप्रिय One Touch Play है. One Touch Play, मीडिया सोर्स डिवाइस को टीवी चालू करने और इनपुट पोर्ट को अपने-आप स्विच हो, ताकि आपको टीवी खोजना न पड़े रिमोट का इस्तेमाल करके Chromecast से ब्लू-रे प्लेयर पर स्विच किया जा सकता है.

Android 12 के साथ, एचडीएमआई से कनेक्ट किए गए डिसप्ले का पावर कंट्रोल इसके साथ मिलता है इंटरनल डिसप्ले का पावर कंट्रोल. एचडीएमआई प्लेबैक डिवाइस के चालू होने पर, यह कोशिश करता है कनेक्टेड टीवी को चालू करने और एचडीएमआई सीईसी वन टच प्ले के ज़रिए मौजूदा चालू सोर्स बनने के लिए. डिवाइस के स्लीप मोड (कम बैटरी मोड) में चला जाता है, तो यह बंद होने की कोशिश करता है कनेक्टेड टीवी पर टैप करें.

आम तौर पर, एचडीएमआई-सीईसी के साथ काम करना ज़रूरी नहीं है. हालांकि, ज़्यादातर मैन्युफ़ैक्चरर ने एचडीएमआई-सीईसी का इस्तेमाल किया है ताकि उनके डिवाइस दूसरी कंपनियों के डिवाइसों के साथ काम कर सकें. हर मैन्युफ़ैक्चरर, एचडीएमआई-सीईसी को लागू करता है इसलिए अलग-अलग मानकों का पालन करते हैं, इसलिए डिवाइस हमेशा एक-दूसरे को नहीं समझ पाते और समर्थित नहीं डिवाइसों के हिसाब से सुविधाएं अलग-अलग होती हैं. इस अंतर की वजह से, उपभोक्ता सुरक्षित तरीके से मान लें कि दो प्रॉडक्ट के लिए, सीईसी की सुविधा का इस्तेमाल करने का दावा किया गया है.

एचडीएमआई-सीईसी 2.0 के साथ काम करने से एचडीएमआई डिवाइसों के बीच काम करने की सुविधा बेहतर होती है, अगर दोनों डिवाइस भेजने और पाने की सुविधा, इस स्टैंडर्ड वर्शन के साथ काम करती है.

समाधान

Android TV इनपुट फ़्रेमवर्क (टीआईएफ़) के साथ एचडीएमआई-सीईसी कनेक्ट किए गए सभी डिवाइसों को एक ही जगह पर रखता है. साथ ही, काम करने से जुड़ी समस्याओं को कम करता है. Android ने HdmiControlService नाम की सिस्टम सेवा बनाई है, ताकि इन परेशानी को कम करने के लिए किया जा सकता है.

Android के लिए HdmiControlService ऑफ़र करें उम्मीद है कि Android ये सुविधाएं उपलब्ध कराएगा:

  • सभी मैन्युफ़ैक्चरर के लिए एचडीएमआई-सीईसी को स्टैंडर्ड तरीके से लागू किया जाता है. इससे डिवाइस असंगतता को कम करें. पहले, मैन्युफ़ैक्चरर को अपने एचडीएमआई-सीईसी को खुद लागू करना या तीसरे पक्ष के समाधानों का इस्तेमाल करना.
  • एक ऐसी सेवा जिसकी जांच पहले से ही, कई एचडीएमआई-सीईसी डिवाइसों पर की जा चुकी है बाज़ार में मौजूद हैं. Android, डिवाइसों के साथ काम करने की सुविधा को बेहतर बनाने के लिए लगातार रिसर्च कर रहा है प्रॉडक्ट में मिली समस्याएं और डिवाइस से ज़रूरी सलाह इकट्ठा करना जिन्हें इस टेक्नोलॉजी के बारे में काफ़ी अनुभव हो. सीईसी सेवा को इस तरह डिज़ाइन किया गया है कि मानक और उस मानक के संशोधनों के बीच एक सही संतुलन है, इसलिए उन प्रॉडक्ट के साथ काम करता है जिनका लोग पहले से इस्तेमाल कर रहे हैं.

ओवरऑल डिज़ाइन

HdmiControlService इस तरह के बाकी सिस्टम से कनेक्ट है टीवी इनपुट फ़्रेमवर्क (टीआईएफ़), ऑडियो सेवा, और पावर सर्विस वाली अलग-अलग सुविधाएँ शामिल हैं, जो उस स्टैंडर्ड के हिसाब से तय होती हैं.

यहां दिया गया डायग्राम देखकर, कस्टम सीईसी पर स्विच करने का तरीका जानें कंट्रोलर को एचडीएमआई-सीईसी हार्डवेयर ऐब्स्ट्रैक्ट को लागू करने के तरीके की जांच करना लेयर (HAL).

डायग्राम में दिखाया गया है कि Android 5.0 से पहले और बाद में एचडीएमआई-सीईसी को कैसे लागू किया गया था

पहला डायग्राम. एचडीएमआई कंट्रोल सेवा प्रतिस्थापन

लागू करना

एचडीएमआई कंट्रोल सेवा के बारे में ज़्यादा जानकारी के लिए, यहां दिया गया डायग्राम देखें.

एचडीएमआई कंट्रोल की सेवा की जानकारी दिखाने वाली इमेज

दूसरा डायग्राम. एचडीएमआई कंट्रोल सेवा की जानकारी

यहां Android HDMI-CEC को सही तरीके से लागू करने के लिए मुख्य बातें बताई गई हैं:

  • मैनेजर क्लास HdmiControlManager, खास अधिकार वाले ऐप्लिकेशन उपलब्ध कराती है को ट्रैक करने की सुविधा मिलती है. टीवी इनपुट मैनेजर सेवा और ऑडियो सेवा जैसी सिस्टम सेवाएं सीधे तौर पर सेवा का इस्तेमाल कर सकते हैं.
  • इस सेवा को इस तरह से डिज़ाइन किया गया है कि यह एक से ज़्यादा तरह के लॉजिकल कॉन्टेंट डिवाइस.
  • एचडीएमआई-सीईसी को हार्डवेयर ऐब्स्ट्रक्शन लेयर की मदद से हार्डवेयर के साथ जोड़ा जाता है (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

आपका डिवाइस एचडीएमआई सिंक डिवाइस है या एचडीएमआई सोर्स डिवाइस, इसके हिसाब से, डिवाइस बनाने वाली कंपनियों को ro.hdmi.device_type को इसमें सेट करना होगा HdmiControlService के लिए device.mk सही तरीके से काम करे.

एचडीएमआई सोर्स डिवाइसों के लिए, जैसे कि ओवर द टॉप (OTT) या सेट-टॉप बॉक्स (STB) डिवाइसों के लिए, इसे सेट करें:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4

एचडीएमआई सिंक डिवाइसों, जैसे कि पैनल टीवी के लिए यह सेट करें:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=0
  • डिवाइस के मैन्युफ़ैक्चरर की ओर से मालिकाना हक वाला सीईसी कंट्रोलर एक साथ मौजूद नहीं हो सकता HdmiControlService के साथ. इसे बंद करना या हटाना चाहिए. कॉमन की शर्तें, मैन्युफ़ैक्चरर के हिसाब से दी जाने वाली ज़रूरतों को ध्यान में रखकर तय की जाती हैं निर्देश देखें. मैन्युफ़ैक्चरर के लिए खास कमांड हैंडलर को इसमें शामिल किया जाना चाहिए उसे बढ़ाया या संशोधित किया जा सकता है. यह काम डिवाइस में बाकी है मैन्युफ़ैक्चरर है और Android ने इसकी जानकारी नहीं दी है. ध्यान दें कि निर्माता के लिए तय किए गए निर्देशों की वजह से, सेवा में रुकावट नहीं डालनी चाहिए सामान्य निर्देशों का पालन किया जाता है या डिवाइस Android के साथ काम नहीं करता.
  • एचडीएमआई-सीईसी सेवा के ऐक्सेस को सुरक्षा के लेवल पर सुरक्षित रखा जाता है SignatureOrSystem. केवल सिस्टम के घटक या उसमें रखे गए ऐप्लिकेशन /system/priv-app सेवा को ऐक्सेस कर सकता है. ऐसा इसलिए किया जाता है, ताकि नुकसान पहुंचाने के इरादे से बनाए गए ऐप्लिकेशन का गलत इस्तेमाल रोकने के लिए बनाया गया कॉन्टेंट.

Android, TV/Display(0), Playback device(4) टाइप पर काम करता है. इसकी मदद से, One Touch Play को चालू करने के लिए निर्देश दिया जा सकता है सोर्स और Audio System (5) हैं, जो सिस्टम के ऑडियो मोड और ARC को हैंडल करते हैं. फ़िलहाल, अन्य तरह के डिवाइसों (ट्यूनर और Recorder) का इस्तेमाल नहीं किया जा सकता.

एचडीएमआई-सीईसी एचएएल

HDMI-CEC HAL API की मदद से, HdmiControlService HDMI-CEC आदेश भेजने/पाने के लिए हार्डवेयर संसाधन, ज़रूरी सेटिंग कॉन्फ़िगर करना, और (वैकल्पिक रूप से) दिए गए प्लैटफ़ॉर्म में मौजूद माइक्रोप्रोसेसर से संपर्क करें Android सिस्टम के स्टैंडबाय मोड में रहने पर, सीईसी कंट्रोल को कंट्रोल कर लेगा.

वर्शन सुविधाएं HAL फ़ाइलें
1.0 एचएएल डेटा (पते, सुविधाएं) कॉन्फ़िगर करें. HDMI-CEC निर्देश भेजें. एचडीएमआई-सीईसी निर्देश और हॉटप्लग इवेंट पाने के लिए, कॉलबैक रजिस्टर करें. IHdmiCec.hal
IHdmiCecCallback.hal
1.1 एचडीएमआई-सीईसी 2.0 टाइप के बारे में जानकारी @1.1::IHdmiCec.hal
@1.1::IHdmiCecCallback.hal

टेस्ट करना

डिवाइसों के एचडीएमआई-सीईसी को लागू करने के तरीके की जांच और पुष्टि, सीटीएस टेस्ट के ज़रिए की जाती है. यह एचडीएमआई-सीईसी सीटीएस दस्तावेज़.

एचडीएमआई-सीईसी 2.0

एचडीएमआई-सीईसी 2.0 पर काम करने वाले Android सोर्स (प्लेबैक) और सिंक (टीवी पैनल) डिवाइस. एचडीएमआई डिवाइसों के बीच एचडीएमआई-सीईसी 2.0 बेहतर इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करना), रिमोट कंट्रोल पासथ्रू और ज़्यादा बारीकी से की जाने वाली सर्टिफ़िकेशन टेस्टिंग में सुधार किए गए हैं. आम तौर पर, दूसरे डिवाइसों के साथ एचडीएमआई-सीईसी 2.0 इंटरैक्शन बेहतर होता है. इससे एचडीएमआई-सीईसी ट्रैफ़िक कम होता है और साथ ही तेज़ी से इंटरैक्शन होता है.

एचडीएमआई-सीईसी 2.0 के साथ काम करने वाले डिवाइस के लिए, डिवाइस और उपयोगकर्ता का कॉन्फ़िगरेशन यह होना चाहिए एचडीएमआई-सीईसी 2.0 इस्तेमाल करने के लिए सेट किया गया है. एचएएल लागू करने की प्रक्रिया में, एचडीएमआई-सीईसी 2.0 के साथ काम करना भी ज़रूरी है IHdmiCec#getCecVersion के कॉल में.

सीईसी कॉन्फ़िगरेशन

एचडीएमआई-सीईसी के काम करने का तरीका, बिल्ड टाइम (आरआरओ का इस्तेमाल करने वाले OEM) और रनटाइम, दोनों पर कॉन्फ़िगर किया जा सकता है (HdmiControlManager @SystemApi से).

एचडीएमआई-सीईसी सेटिंग के उदाहरण:

सेटिंग विकल्प
एचडीएमआई-सीईसीी चालू है या बंद है. चालू किया गया
अक्षम किया गया
प्लेबैक डिवाइस से भेजे गए एचडीएमआई-सीईसी पावर कंट्रोल मैसेज का स्कोप. सिर्फ़ टीवी पर
टीवी और ऑडियो सिस्टम में
ब्रॉडकास्ट
कोई सूचना नहीं मिल रही

फ़िलहाल, उपलब्ध हर सेटिंग और अनुमति वाले विकल्पों के लिए, ऐप्लिकेशन रन टाइम के दौरान क्वेरी कर सकता है.