एचडीएमआई-सीईसी नियंत्रण सेवा

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

एंड्रॉइड 12 के साथ, एचडीएमआई-कनेक्टेड डिस्प्ले का पावर नियंत्रण आंतरिक डिस्प्ले के पावर नियंत्रण के साथ संरेखित होता है। जब एक एचडीएमआई प्लेबैक डिवाइस सक्रिय होता है, तो यह कनेक्टेड टीवी को सक्रिय करने का प्रयास करता है और एचडीएमआई सीईसी वन टच प्ले के माध्यम से वर्तमान सक्रिय स्रोत बन जाता है। यदि डिवाइस वर्तमान सक्रिय स्रोत होने पर स्लीप मोड में चला जाता है, तो यह कनेक्टेड टीवी को बंद करने का प्रयास करता है।

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

एचडीएमआई-सीईसी 2.0 के लिए समर्थन एचडीएमआई उपकरणों के बीच अनुकूलता को बेहतर बनाने में मदद करता है यदि भेजने और प्राप्त करने वाले डिवाइस दोनों मानक के इस संस्करण का समर्थन करते हैं।

समाधान

एंड्रॉइड टीवी इनपुट फ्रेमवर्क (टीआईएफ) की शुरुआत के साथ, एचडीएमआई-सीईसी सभी कनेक्टेड डिवाइसों को एक साथ लाता है और संगतता समस्याओं को कम करता है। एंड्रॉइड ने इन दर्द बिंदुओं को कम करने के लिए HdmiControlService नामक एक सिस्टम सेवा बनाई है।

एंड्रॉइड इकोसिस्टम के एक हिस्से के रूप में HdmiControlService पेशकश करके, एंड्रॉइड निम्नलिखित प्रदान करने की उम्मीद करता है:

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

समग्र डिज़ाइन

HdmiControlService मानक निर्दिष्ट विभिन्न सुविधाओं को लागू करने के लिए टीवी इनपुट फ्रेमवर्क (TIF), ऑडियो सेवा और पावर सेवा जैसे बाकी सिस्टम से जुड़ा हुआ है।

कस्टम सीईसी नियंत्रक से सरल एचडीएमआई-सीईसी हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) के कार्यान्वयन के लिए स्विच के चित्रण के लिए निम्नलिखित चित्र देखें।

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

चित्र 1. एचडीएमआई नियंत्रण सेवा प्रतिस्थापन

कार्यान्वयन

एचडीएमआई नियंत्रण सेवा के विस्तृत दृश्य के लिए निम्नलिखित चित्र देखें।

छवि जो दिखाती है कि एचडीएमआई नियंत्रण सेवा का विवरण कैसे दिया जाता है

चित्र 2. एचडीएमआई नियंत्रण सेवा विवरण

उचित Android HDMI-CEC कार्यान्वयन के लिए यहां मुख्य सामग्रियां दी गई हैं:

  • एक प्रबंधक वर्ग HdmiControlManager एपीआई के साथ विशेषाधिकार प्राप्त ऐप्स प्रदान करता है। टीवी इनपुट मैनेजर सेवा और ऑडियो सेवा जैसी सिस्टम सेवाएँ सीधे सेवा का उपयोग कर सकती हैं।
  • सेवा को एक से अधिक प्रकार के लॉजिकल डिवाइस को होस्ट करने की अनुमति देने के लिए डिज़ाइन किया गया है।
  • उपकरणों के बीच प्रोटोकॉल और सिग्नलिंग तंत्र के अंतर को संभालने को आसान बनाने के लिए एचडीएमआई-सीईसी हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) के माध्यम से हार्डवेयर से जुड़ा हुआ है। एचएएल परिभाषा डिवाइस निर्माताओं के लिए एचएएल परत को लागू करने के लिए उपलब्ध है।

नोट : डिवाइस निर्माताओं को device.mk में PRODUCT_COPY_FILES में निम्नलिखित पंक्ति जोड़नी चाहिए।

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

इस पर निर्भर करते हुए कि आपका डिवाइस HDMI सिंक डिवाइस है या HDMI सोर्स डिवाइस, डिवाइस निर्माताओं को HdmiControlService के सही ढंग से काम करने के लिए device.mk .mk में ro.hdmi.device_type सेट करना होगा।

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

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4

एचडीएमआई सिंक उपकरणों के लिए, जैसे पैनल टीवी, सेट:

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

एंड्रॉइड टाइप TV/Display(0) , Playback device(4) सपोर्ट करता है जो सक्रिय स्रोत बनने के लिए वन टच प्ले कमांड जारी कर सकता है और Audio System (5) जो सिस्टम ऑडियो मोड और एआरसी को संभालता है। अन्य डिवाइस प्रकार (ट्यूनर और रिकॉर्डर) वर्तमान में समर्थित नहीं हैं।

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

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

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

परिक्षण

एचडीएमआई- सीईसी सीटीएस दस्तावेज़ के अनुसार उपकरणों के एचडीएमआई- सीईसी कार्यान्वयन का सीटीएस परीक्षणों के माध्यम से परीक्षण और सत्यापन किया जाता है।

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

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

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

सीईसी विन्यास

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

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

सेटिंग विकल्प
क्या एचडीएमआई-सीईसी सक्षम या अक्षम है। सक्रिय
अक्षम
प्लेबैक डिवाइस द्वारा भेजे गए एचडीएमआई-सीईसी पावर नियंत्रण संदेशों का दायरा। केवल टीवी के लिए
टीवी और ऑडियो सिस्टम के लिए
प्रसारण
कोई नहीं

प्रत्येक सेटिंग के लिए वर्तमान में उपलब्ध और अनुमत विकल्पों को रन टाइम पर ऐप्स द्वारा क्वेरी किया जा सकता है।