टीवी इनपुट फ्रेमवर्क

एंड्रॉइड टीवी एचएएल आइकन

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

यह ढांचा टीवी मानकों या क्षेत्रीय आवश्यकताओं को लागू करने का प्रयास नहीं करता है, लेकिन डिवाइस निर्माताओं के लिए पुन: कार्यान्वयन के बिना क्षेत्रीय डिजिटल टीवी प्रसारण मानकों को पूरा करना आसान बनाता है। इस अनुभाग में दस्तावेज़ीकरण उन तृतीय-पक्ष ऐप डेवलपर्स के लिए भी उपयोगी हो सकता है जो कस्टम टीवी इनपुट बनाना चाहते हैं।

अवयव

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

टीवी इनपुट फ्रेमवर्क में निम्न शामिल हैं:

  • टीवी प्रदाता ( com.android.providers.tv.TvProvider ): चैनलों, कार्यक्रमों और संबंधित अनुमतियों का एक डेटाबेस
  • टीवी ऐप ( com.android.tv.TvActivity ): वह ऐप जो उपयोगकर्ता के इंटरेक्शन को संभालता है
  • टीवी इनपुट मैनेजर ( android.media.tv.TvInputManager ): टीवी इनपुट को टीवी ऐप के साथ संचार करने की अनुमति देता है
  • टीवी इनपुट: भौतिक या आभासी ट्यूनर और इनपुट पोर्ट का प्रतिनिधित्व करने वाला एक ऐप
  • टीवी इनपुट एचएएल ( tv_input मॉड्यूल): एक हार्डवेयर परिभाषा जो लागू होने पर सिस्टम टीवी इनपुट को टीवी-विशिष्ट हार्डवेयर तक पहुंचने की अनुमति देती है
  • माता-पिता का नियंत्रण: चैनलों और कार्यक्रमों को अवरुद्ध करने की अनुमति देने वाली तकनीक
  • एचडीएमआई-सीईसी: एचडीएमआई पर विभिन्न उपकरणों के रिमोट कंट्रोल की अनुमति देने वाली तकनीक
  • ट्यूनर फ्रेमवर्क: बिल्ट-इन-ट्यूनर टीवी इनपुट के लिए एक फ्रेमवर्क
  • MediaCas: सशर्त पहुंच के लिए एक रूपरेखा
  • ट्यूनर रिसोर्स मैनेजर: टीवी इनपुट, मीडियाकास और बिल्ट-इन-ट्यूनर इनपुट के लिए हार्डवेयर संसाधन को प्रबंधित करने के लिए एक सेवा

इन घटकों को नीचे विस्तार से बताया गया है। एंड्रॉइड टीवी इनपुट फ्रेमवर्क आर्किटेक्चर के विस्तृत दृश्य के लिए निम्नलिखित चित्र देखें।

एंड्रॉइड टीआईएफ आर्किटेक्चर का अवलोकन
चित्र 1. एंड्रॉइड टीवी इनपुट फ्रेमवर्क (टीआईएफ) आर्किटेक्चर

प्रवाह

यहां बताया गया है कि वास्तुकला का प्रयोग कैसे किया जाता है:

  1. उपयोगकर्ता टीवी ऐप को देखता है और उसके साथ इंटरैक्ट करता है, एक सिस्टम ऐप जिसे किसी तीसरे पक्ष के ऐप द्वारा प्रतिस्थापित नहीं किया जा सकता है।
  2. टीवी ऐप टीवी इनपुट से एवी सामग्री प्रदर्शित करता है।
  3. टीवी ऐप टीवी इनपुट से सीधे बात नहीं कर सकता। टीवी इनपुट मैनेजर टीवी ऐप के लिए टीवी इनपुट की स्थिति की पहचान करता है। इन सीमाओं के बारे में अधिक जानकारी के लिए नीचे टीवी इनपुट मैनेजर देखें।

अनुमतियां

  • केवल signatureOrSystem टीवी इनपुट्स और टीवी ऐप के पास टीवी प्रदाता डेटाबेस तक पूर्ण पहुंच है और वे KeyEvents प्राप्त करने में सक्षम हैं।
  • केवल सिस्टम टीवी इनपुट ही टीवी इनपुट मैनेजर सेवा के माध्यम से टीवी इनपुट एचएएल तक पहुंच सकते हैं। टीवी इनपुट मैनेजर सत्र के माध्यम से टीवी इनपुट को एक-से-एक एक्सेस किया जाता है।
  • तृतीय-पक्ष टीवी इनपुट के पास टीवी प्रदाता डेटाबेस तक पैकेज-लॉक पहुंच है और केवल मेल खाने वाली पैकेज पंक्तियों को पढ़/लिख सकता है।
  • तृतीय-पक्ष टीवी इनपुट या तो अपनी स्वयं की सामग्री प्रदर्शित कर सकते हैं या HDMI1 जैसे डिवाइस निर्माता के पासथ्रू टीवी इनपुट से सामग्री प्रदर्शित कर सकते हैं। वे अंतर्निर्मित या आईपीटीवी ट्यूनर जैसे गैर-पासथ्रू टीवी इनपुट से सामग्री प्रदर्शित नहीं कर सकते हैं।
  • हार्डवेयर टीवी इनपुट ऐप के लिए TV_INPUT_HARDWARE अनुमति, टीवी इनपुट मैनेजर सेवा को बूट पर टीवी इनपुट सेवा को सूचित करने के लिए टीवी इनपुट मैनेजर सेवा को कॉल करने और उसके टीवी इनपुट जोड़ने के लिए संकेत देती है। यह अनुमति एक हार्डवेयर टीवी इनपुट ऐप को प्रति टीवी इनपुट सेवा में कई टीवी इनपुट का समर्थन करने की अनुमति देती है, साथ ही इसके समर्थित टीवी इनपुट को गतिशील रूप से जोड़ने और हटाने में सक्षम बनाती है।

टीवी प्रदाता

टीवी प्रदाता डेटाबेस टीवी इनपुट से चैनल और प्रोग्राम संग्रहीत करता है। टीवी प्रदाता संबंधित अनुमतियों को भी प्रकाशित और प्रबंधित करता है ताकि टीवी इनपुट केवल अपने स्वयं के रिकॉर्ड देख सकें। उदाहरण के लिए, एक विशिष्ट टीवी इनपुट केवल उसके द्वारा आपूर्ति किए गए चैनलों और कार्यक्रमों को देख सकता है और किसी भी अन्य टीवी इनपुट के चैनलों और कार्यक्रमों तक पहुंच निषिद्ध है।

टीवी प्रदाता आंतरिक रूप से "प्रसारण शैली" को "विहित शैली" में मैप करता है। टीवी इनपुट अंतर्निहित प्रसारण मानक में मूल्य के साथ "प्रसारण शैली" को पॉप्युलेट करने के लिए जिम्मेदार हैं, और "कैनोनिकल शैली" फ़ील्ड स्वचालित रूप से android.provider.TvContract.Genres से सही संबंधित शैली के साथ पॉप्युलेट हो जाएगी। उदाहरण के लिए, प्रसारण मानक एटीएससी ए/65 और शैली 0x25 (अर्थात् "स्पोर्ट्स") वाले कार्यक्रम के साथ, टीवी इनपुट स्ट्रिंग "स्पोर्ट्स" के साथ "प्रसारण शैली" को पॉप्युलेट करेगा और टीवी प्रदाता "कैनोनिकल शैली" फ़ील्ड को पॉप्युलेट करेगा। मैप किया गया मान android.provider.TvContract.Genres.SPORTS .

टीवी प्रदाता के विस्तृत दृश्य के लिए नीचे दिया गया चित्र देखें।

एंड्रॉइड टीवी प्रदाता
चित्र 2. एंड्रॉइड टीवी प्रदाता

केवल विशेषाधिकार प्राप्त सिस्टम विभाजन के ऐप्स ही संपूर्ण टीवी प्रदाता डेटाबेस को पढ़ सकते हैं।

पासथ्रू टीवी इनपुट चैनल और कार्यक्रमों को संग्रहीत नहीं करते हैं।

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

डेटाबेस फ़ील्ड उदाहरण

टीवी प्रदाता चैनल ( android.provider.TvContract.Channels ) और प्रोग्राम ( android.provider.TvContract.Programs ) तालिकाओं में संरचित डेटा का समर्थन करता है। ये तालिकाएँ टीवी इनपुट और टीवी ऐप जैसे सिस्टम ऐप्स द्वारा पॉप्युलेट और एक्सेस की जाती हैं। इन तालिकाओं में चार प्रकार के फ़ील्ड हैं:

  • डिस्प्ले: डिस्प्ले फ़ील्ड में ऐसी जानकारी होती है जिसे ऐप्स उपयोगकर्ता को दिखाना चाहते हैं, जैसे चैनल का नाम ( COLUMN_DISPLAY_NAME ) या नंबर ( COLUMN_DISPLAY_NUMBER ), या देखे जा रहे प्रोग्राम का शीर्षक।
  • मेटाडेटा: प्रासंगिक मानकों के अनुसार, सामग्री की पहचान करने के लिए तीन फ़ील्ड हैं, जैसे चैनल की ट्रांसपोर्ट स्ट्रीम आईडी ( COLUMN_TRANSPORT_STREAM_ID ), मूल नेटवर्क आईडी ( COLUMN_ORIGINAL_NETWORK_ID ) और सेवा आईडी ( COLUMN_SERVICE_ID )।
  • आंतरिक डेटा : फ़ील्ड जो टीवी इनपुट के कस्टम उपयोग के लिए हैं।
    कुछ फ़ील्ड, जैसे COLUMN_INTERNAL_PROVIDER_DATA , अनुकूलन योग्य BLOB फ़ील्ड हैं जहां एक टीवी इनपुट अपने चैनल या प्रोग्राम के बारे में मनमाना मेटाडेटा संग्रहीत कर सकता है।
  • फ़्लैग: फ़्लैग फ़ील्ड दर्शाते हैं कि किसी चैनल को खोज, ब्राउज़ या देखने से प्रतिबंधित किया जाना चाहिए या नहीं। इसे केवल चैनल स्तर पर ही सेट किया जा सकता है। सभी प्रोग्राम चैनल की सेटिंग का पालन करते हैं।
    • COLUMN_SEARCHABLE : कुछ चैनलों से खोज को प्रतिबंधित करना कुछ क्षेत्रों में एक आवश्यकता हो सकती है। COLUMN_SEARCHABLE = 0 का अर्थ है कि चैनल को खोज परिणामों में उजागर नहीं किया जाना चाहिए।
    • COLUMN_BROWSABLE : केवल सिस्टम अनुप्रयोगों के लिए दृश्यमान। चैनल को एप्लिकेशन द्वारा ब्राउज़ किए जाने से प्रतिबंधित करना। COLUMN_BROWSABLE = 0 का अर्थ है कि चैनल को चैनल सूची में शामिल नहीं किया जाना चाहिए।
    • COLUMN_LOCKED : केवल सिस्टम अनुप्रयोगों के लिए दृश्यमान। पिन कोड दर्ज किए बिना अमान्य खातों द्वारा चैनल देखने पर प्रतिबंध लगाना। COLUMN_LOCKED = 1 का अर्थ है कि चैनल को माता-पिता के नियंत्रण द्वारा संरक्षित किया जाना चाहिए।

फ़ील्ड की अधिक विस्तृत सूची के लिए, android/frameworks/base/media/java/android/media/tv/TvContract.java देखें

अनुमतियाँ और अभिगम नियंत्रण

सभी फ़ील्ड संबंधित पंक्ति तक पहुंच रखने वाले किसी भी व्यक्ति को दिखाई देती हैं। कोई भी फ़ील्ड उपयोगकर्ताओं के लिए सीधे पहुंच योग्य नहीं है; वे केवल वही देखते हैं जो टीवी ऐप, सिस्टम ऐप या टीवी इनपुट सामने आता है।

  • प्रत्येक पंक्ति में PACKAGE_NAME है, पैकेज (ऐप) जो उस पंक्ति का मालिक है, TvProvider.java के माध्यम से क्वेरी, इंसर्ट, अपडेट पर चेक किया गया है। एक टीवी इनपुट केवल उसके द्वारा लिखी गई जानकारी तक पहुंच सकता है और अन्य टीवी इनपुट द्वारा प्रदान की गई जानकारी से घिरा हुआ है।
  • उपलब्ध चैनलों को निर्धारित करने के लिए AndroidManifest.xml के माध्यम से पढ़ें, लिखें अनुमतियाँ (उपयोगकर्ता की सहमति की आवश्यकता है)।
  • केवल signatureOrSystem ऐप्स ही संपूर्ण डेटाबेस तक पहुंचने के लिए ACCESS_ALL_EPG_DATA अनुमति प्राप्त कर सकते हैं।

टीवी इनपुट मैनेजर

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

  • टीवी इनपुट सूचीबद्ध करें और उनकी स्थिति जांचें
  • सत्र बनाएँ और श्रोताओं को प्रबंधित करें

सत्रों के लिए, एक टीवी इनपुट को टीवी ऐप द्वारा केवल यूआरआई के लिए ट्यून किया जा सकता है, जिसे उसने टीवी प्रदाता डेटाबेस में जोड़ा है, पासथ्रू टीवी इनपुट को छोड़कर जिसे TvContract.buildChannelUriForPassthroughInput() का उपयोग करके ट्यून किया जा सकता है। एक टीवी इनपुट का वॉल्यूम भी सेट हो सकता है। डिवाइस निर्माता (सिग्नेचर ऐप्स) द्वारा प्रदान और हस्ताक्षरित टीवी इनपुट या सिस्टम विभाजन में इंस्टॉल किए गए अन्य ऐप्स के पास संपूर्ण टीवी प्रदाता डेटाबेस तक पहुंच होगी। इस एक्सेस का उपयोग सभी उपलब्ध टीवी चैनलों और कार्यक्रमों में ब्राउज़ करने और खोजने के लिए ऐप्स बनाने के लिए किया जा सकता है।

एक ऐप टीवी इनपुट की स्थिति में बदलाव या टीवी इनपुट को जोड़ने या हटाने पर वापस कॉल करने के लिए android.media.tv.TvInputManager के साथ एक TvInputCallback बना और पंजीकृत कर सकता है। उदाहरण के लिए, एक टीवी ऐप किसी टीवी इनपुट के डिस्कनेक्ट होने पर उसे डिस्कनेक्टेड के रूप में प्रदर्शित करके और उसके चयन को रोककर प्रतिक्रिया कर सकता है।

टीवी इनपुट मैनेजर टीवी ऐप और टीवी इनपुट के बीच संचार को अमूर्त करता है। टीवी इनपुट मैनेजर और टीवी इनपुट का मानक इंटरफ़ेस कई डिवाइस निर्माताओं को अपने स्वयं के टीवी ऐप बनाने की अनुमति देता है, जबकि सभी तृतीय-पक्ष टीवी इनपुट को सभी टीवी ऐप पर काम करने में मदद करता है।

टीवी इनपुट

टीवी इनपुट इस अर्थ में एंड्रॉइड ऐप्स हैं कि उनके पास AndroidManifest.xml है और इंस्टॉल किए गए हैं (प्ले के माध्यम से, पहले से इंस्टॉल किए गए, या साइडलोड किए गए)। एंड्रॉइड टीवी पहले से इंस्टॉल किए गए सिस्टम ऐप्स, डिवाइस निर्माता द्वारा हस्ताक्षरित ऐप्स और तीसरे पक्ष के टीवी इनपुट का समर्थन करता है।

कुछ इनपुट, जैसे एचडीएमआई इनपुट या बिल्ट-इन ट्यूनर इनपुट, केवल निर्माता द्वारा प्रदान किए जा सकते हैं क्योंकि वे सीधे अंतर्निहित हार्डवेयर से बात करते हैं। अन्य, जैसे कि आईपीटीवी, प्लेस-शिफ्टिंग और बाहरी एसटीबी, Google Play Store पर एपीके के रूप में तीसरे पक्ष द्वारा आपूर्ति की जा सकती हैं। एक बार डाउनलोड और इंस्टॉल होने के बाद, टीवी ऐप के भीतर नया इनपुट चुना जा सकता है।

पासथ्रू इनपुट उदाहरण

एंड्रॉइड टीवी सिस्टम इनपुट
चित्र 3. एंड्रॉइड टीवी सिस्टम इनपुट

इस उदाहरण में, डिवाइस निर्माता द्वारा प्रदान किया गया टीवी इनपुट विश्वसनीय है और टीवी प्रदाता तक इसकी पूर्ण पहुंच है। पासथ्रू टीवी इनपुट के रूप में, यह टीवी प्रदाता के साथ किसी भी चैनल या कार्यक्रम को पंजीकृत नहीं करता है। पासथ्रू इनपुट को संदर्भित करने के लिए उपयोग किए जाने वाले यूआरआई को प्राप्त करने के लिए, android.media.tv.TvContract उपयोगिता विधि buildChannelUriForPassthroughInput(String inputId) का उपयोग करें। टीवी ऐप एचडीएमआई टीवी इनपुट तक पहुंचने के लिए टीवी इनपुट मैनेजर के साथ संचार करता है।

अंतर्निर्मित ट्यूनर उदाहरण

एंड्रॉइड टीवी बिल्ट-इन ट्यूनर इनपुट
चित्र 4. एंड्रॉइड टीवी बिल्ट-इन ट्यूनर इनपुट

इस उदाहरण में, डिवाइस निर्माता द्वारा प्रदान किया गया बिल्ट-इन ट्यूनर टीवी इनपुट विश्वसनीय है और टीवी प्रदाता तक इसकी पूर्ण पहुंच है।

तृतीय-पक्ष इनपुट उदाहरण

एंड्रॉइड टीवी तृतीय-पक्ष इनपुट
चित्र 5. एंड्रॉइड टीवी तृतीय-पक्ष इनपुट

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

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

पिक्चर इन पिक्चर (पीआईपी) उदाहरण

एंड्रॉइड टीवी की इवेंट्स
चित्र 6. Android TV KeyEvents

ऊपर दिया गया चित्र दिखाता है कि रिमोट कंट्रोल के बटन पिक्चर इन पिक्चर (पीआईपी) डिस्प्ले के लिए एक विशिष्ट टीवी इनपुट को कैसे पास किए जाते हैं। उन बटन दबाने की व्याख्या डिवाइस निर्माता द्वारा आपूर्ति किए गए हार्डवेयर ड्राइवर द्वारा की जाती है, हार्डवेयर स्कैनकोड को एंड्रॉइड कीकोड में परिवर्तित किया जाता है और उन्हें मानक एंड्रॉइड इनपुट पाइपलाइन InputReader और InputDispatcher कार्यों में KeyEvents के रूप में भेजा जाता है। यदि यह फोकस में है तो ये टीवी ऐप पर ईवेंट ट्रिगर करते हैं।

केवल सिस्टम टीवी इनपुट ही InputEvents प्राप्त करने के पात्र हैं, और केवल तभी जब उनके पास RECEIVE_INPUT_EVENT सिस्टम अनुमति हो। टीवी इनपुट यह निर्धारित करने के लिए ज़िम्मेदार है कि कौन से इनपुटइवेंट का उपभोग करना है और टीवी ऐप को उन कुंजियों को संभालने की अनुमति देनी चाहिए जिनकी उसे उपभोग करने की आवश्यकता नहीं है।

टीवी ऐप यह जानने के लिए जिम्मेदार है कि कौन सा सिस्टम टीवी इनपुट सक्रिय है, यानी उपयोगकर्ता द्वारा चुना गया है, और आने वाले KeyEvents स्पष्ट करने और उन्हें सही टीवी इनपुट मैनेजर सत्र में रूट करने के लिए, संबंधित टीवी इनपुट पर इवेंट को पास करने के लिए dispatchInputEvent() को कॉल करता है। .

MHEG-5 इनपुट उदाहरण

निम्नलिखित आरेख इस बात का अधिक विस्तृत दृश्य दिखाता है कि एंड्रॉइड टीआईएफ के माध्यम से KeyEvents कैसे रूट किया जाता है।

एंड्रॉइड टीवी रेड बटन उदाहरण
चित्र 7. एंड्रॉइड टीवी लाल बटन उदाहरण

यह रेड बटन ऐप के प्रवाह को दर्शाता है, जो यूरोप में उपयोगकर्ताओं को अपने टेलीविज़न पर इंटरैक्टिव ऐप्स तक पहुंचने की सुविधा देता है। इस ट्रांसपोर्ट स्ट्रीम पर एक ऐप डिलीवर किया जा सकता है। जब बटन पर क्लिक किया जाता है, तो यह उपयोगकर्ताओं को इन प्रसारण ऐप्स के साथ बातचीत करने देता है। उदाहरण के लिए, आप संबंधित वेब पेजों या खेल स्कोर तक पहुंचने के लिए इन प्रसारण ऐप्स का उपयोग कर सकते हैं।

यह जानने के लिए ब्रॉडकास्ट ऐप अनुभाग देखें कि ब्रॉडकास्ट ऐप्स टीवी ऐप के साथ कैसे इंटरैक्ट करते हैं।

इस उदाहरण में:

  1. टीवी ऐप फ़ोकस में है और सभी कुंजियाँ प्राप्त करता है।
  2. KeyEvents (उदाहरण के लिए लाल बटन) को InputEvents.
  3. सिस्टम टीवी इनपुट MHEG-5 स्टैक के साथ एकीकृत होता है और इसमें RECEIVE_INPUT_EVENT सिस्टम अनुमति होती है।
  4. सक्रियण कुंजीकोड (जैसे लाल बटन) प्राप्त करने पर, टीवी इनपुट प्रसारण ऐप को सक्रिय करता है।
  5. टीवी इनपुट KeyEvents InputEvents के रूप में उपयोग करता है और प्रसारण ऐप फोकस है और खारिज होने तक InputEvents संभालता है।

ध्यान दें : तृतीय-पक्ष टीवी इनपुट को कभी भी कुंजी प्राप्त नहीं होती हैं।

टीवी इनपुट एचएएल

टीवी इनपुट एचएएल टीवी-विशिष्ट हार्डवेयर तक पहुंचने के लिए टीवी इनपुट के विकास में सहायता करता है। अन्य एंड्रॉइड एचएएल की तरह, टीवी इनपुट एचएएल ( tv_input ) एओएसपी स्रोत ट्री में उपलब्ध है और विक्रेता इसका कार्यान्वयन विकसित करता है।

नोट : एंड्रॉइड 14 से शुरू होकर, टीवी इनपुट एचएएल इंटरफ़ेस को एआईडीएल का उपयोग करके परिभाषित किया गया है।

टीवी ऐप

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

डिवाइस निर्माता डिवाइस निर्माता या देश-विशिष्ट सुविधाओं को लागू करने के लिए अपने टीवी ऐप का विस्तार कर सकते हैं, हालांकि यह टीआईएफ या संदर्भ टीवी ऐप के दायरे में नहीं है।

कम से कम, सिस्टम टीवी ऐप को निम्नलिखित कार्यों को संभालने की आवश्यकता है:

सेटअप और कॉन्फ़िगरेशन

  • टीवी इनपुट का स्वतः पता लगाएं
  • टीवी इनपुट्स को चैनल सेटअप शुरू करने दें
  • माता-पिता की सेटिंग नियंत्रित करें
  • चैनल संपादित करें

देखना

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

यह सुविधा सेट नए एंड्रॉइड संस्करणों के अनुरूप बढ़ेगा जहां प्लेटफ़ॉर्म टीआईएफ एपीआई विस्तारित हैं। सीटीएस सत्यापनकर्ता संगतता परीक्षण कवरेज प्रदान करता है।

तृतीय-पक्ष टीवी इनपुट के लिए समर्थन

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

सिस्टम टीवी ऐप को डिवाइस की डिफ़ॉल्ट लाइव टीवी सेवा के साथ-साथ तृतीय-पक्ष इनपुट भी प्रदर्शित करना होगा। डेवलपर एपीआई का वादा यह है कि उपयोगकर्ता अपने मानक टीवी अनुभव के भीतर चैनल (एक बार इंस्टॉल होने के बाद) ढूंढ पाएंगे।

अंतर्निहित चैनलों और तृतीय-पक्ष चैनलों के बीच दृश्य अंतर की अनुमति है, जैसा कि एंड्रॉइड सीडीडी के टीवी ऐप अनुभाग में परिभाषित किया गया है।

निम्नलिखित अनुभाग दिखाते हैं कि लाइव टीवी एप्लिकेशन सीडीडी आवश्यकताओं को कैसे पूरा करता है।

नया चैनल सेटअप

नए तृतीय-पक्ष इनपुट/चैनल को जोड़ने की शुरुआत उपयोगकर्ता द्वारा Google Play जैसे एप्लिकेशन स्टोर से टीवी इनपुट ढूंढने और इंस्टॉल करने से होती है।

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

संदर्भ लाइव टीवी ऐप इनपुट तक पहुंचने के लिए चैनल स्रोत मेनू प्रदान करता है।

सेटिंग्स में जाओ
चित्र 8. सेटिंग्स पर जाएँ।

सेटिंग्स में चैनल सोर्स पर जाएं
चित्र 9. सेटिंग्स में चैनल स्रोतों पर जाएँ।

सूची से अपना स्रोत चुनें.
चित्र 10. सूची से अपना स्रोत चुनें।

अपने स्रोत से चैनल जोड़ें
चित्र 11. अपने स्रोत से चैनल जोड़ें।

इसके अलावा, नया TvInput इंस्टॉल होने के बाद उपयोगकर्ता को सीधे सेटअप पर ले जाने के लिए टीवी ऐप मेनू के शीर्ष पर एक अधिसूचना कार्ड दिखाया जाता है:

अधिसूचना जो दिखाती है कि नए चैनल स्रोत उपलब्ध हैं।
चित्र 12. अधिसूचना जो दर्शाती है कि नए चैनल स्रोत उपलब्ध हैं।

यदि उपयोगकर्ता अधिसूचना के माध्यम से कार्रवाई करता है, तो वे अपने स्रोतों को स्थापित करना चुन सकते हैं जैसा कि चित्र 10 में देखा गया है।

इस क्षेत्र में डेवलपर अपेक्षाओं के लिए अपनी टीवी इनपुट सेवा परिभाषित करें देखें।

चैनल सूची अनुकूलित करें

डिवाइस निर्माता कुछ चैनलों को छिपाने के लिए यूआई प्रदान कर सकते हैं और उपयोगकर्ताओं को अपने स्वयं के ईपीजी को प्रबंधित करने में सक्षम बना सकते हैं। लाइव टीवी में यह सुविधा शामिल है।

सेटिंग्स में चैनल सूची खोलें.
चित्र 13. सेटिंग्स में चैनल सूची खोलें।

अपनी चैनल सूची अनुकूलित करें.
चित्र 14. अपनी चैनल सूची अनुकूलित करें.

ईपीजी

तृतीय-पक्ष इनपुट डेवलपर्स को यह विश्वास होना चाहिए कि उपयोगकर्ता सामान्य उपयोग के दौरान सभी संगत एंड्रॉइड टीवी उपकरणों पर आसानी से अपने चैनल पर नेविगेट कर सकते हैं।

तीसरे पक्ष के इनपुट के चैनल को डिवाइस के मानक लाइव टीवी अनुभव ईपीजी के हिस्से के रूप में प्रस्तुत किया जाना चाहिए। तीसरे पक्ष के चैनलों के लिए दृश्य पृथक्करण या अलग श्रेणियों का उपयोग किया जा सकता है (एंड्रॉइड सीडीडी का टीवी ऐप अनुभाग देखें) - मुख्य बात यह है कि उपयोगकर्ता अपने द्वारा इंस्टॉल किए गए चैनलों को ढूंढने में सक्षम हैं।

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

समय बदलता है

एंड्रॉइड 6.0 और उससे ऊपर के उपकरणों के लिए, टीवी ऐप को एंड्रॉइड फ्रेमवर्क टाइम शिफ्टिंग एपीआई का समर्थन करना चाहिए। इसके अतिरिक्त, निर्माताओं को टीवी ऐप में प्लेबैक नियंत्रण लागू करना होगा, जो उपयोगकर्ताओं को प्लेबैक को रोकने, फिर से शुरू करने, रिवाइंड करने और तेजी से आगे बढ़ाने की अनुमति देता है।

समय परिवर्तन का समर्थन करने वाले टीवी इनपुट के लिए, टीवी ऐप को प्लेबैक नियंत्रण प्रदर्शित करने की आवश्यकता होती है।

प्लेबैक नियंत्रण
चित्र 15. प्लेबैक नियंत्रण

डी.वी.आर

एंड्रॉइड 7.0 और उससे ऊपर के उपकरणों के लिए, टीवी ऐप को रिकॉर्ड किए गए कार्यक्रमों का समर्थन करने, सूचीबद्ध करने और चलाने के लिए एंड्रॉइड फ्रेमवर्क टीवी रिकॉर्डिंग एपीआई का समर्थन करना चाहिए।

यह डिवाइस निर्माताओं को अपने डीवीआर सबसिस्टम को टीआईएफ में प्लग करने की अनुमति देता है और टीवी डिवाइस पर डीवीआर कार्यक्षमता को सक्षम या एकीकृत करने के लिए किए जाने वाले एकीकरण प्रयास को नाटकीय रूप से कम कर देता है। यह तीसरे पक्ष को आफ्टरमार्केट डीवीआर सिस्टम प्रदान करने में भी सक्षम बनाता है जिसे एंड्रॉइड टीवी डिवाइस में प्लग किया जा सकता है।

लाइव सामग्री रिकॉर्ड करने के अलावा, टीवी ऐप संसाधन संघर्ष को भी संभालता है। उदाहरण के लिए, यदि डिवाइस में दो ट्यूनर हैं, तो यह एक ही समय में दो प्रोग्राम रिकॉर्ड कर सकता है। यदि उपयोगकर्ता तीन रिकॉर्ड करने के लिए कहता है, तो टीवी ऐप को विरोध को संभालना होगा और या तो एक अधिसूचना जारी करनी चाहिए या अनुरोध करना चाहिए कि उपयोगकर्ता इन अनुरोधों के लिए प्राथमिकता निर्धारित करे।

टीवी ऐप्स अधिक परिष्कृत तर्क भी लागू कर सकते हैं जैसे उपयोगकर्ता से यह पूछना कि क्या वे एक श्रृंखला में भविष्य के सभी एपिसोड रिकॉर्ड करना चाहेंगे, जब वे एक एपिसोड रिकॉर्ड करने का अनुरोध करते हैं।

एंड्रॉइड टीवी में संभावित डीवीआर कार्यान्वयन को देखने के लिए निम्नलिखित चित्र देखें।

एंड्रॉइड टीवी में डिजिटल वीडियो रिकॉर्डिंग
चित्र 16. एंड्रॉइड टीवी में डिजिटल वीडियो रिकॉर्डिंग

  1. टीवी इनपुट सेवा टीवी ऐप को बताती है कि कितने ट्यूनर उपलब्ध हैं ताकि टीवी ऐप संभावित संसाधन संघर्ष को संभाल सके।
  2. टीवी ऐप को एक टीवी कार्यक्रम रिकॉर्ड करने के लिए उपयोगकर्ता द्वारा शुरू किया गया अनुरोध प्राप्त होता है।
  3. टीवी ऐप रिकॉर्डिंग शेड्यूल को अपने आंतरिक डेटाबेस में संग्रहीत करता है।
  4. जब रिकॉर्ड करने का समय आता है, तो टीवी ऐप रिकॉर्डिंग से जुड़े चैनल को ट्यून करने का अनुरोध भेजता है।
  5. टीवी इनपुट सेवा इस अनुरोध को प्राप्त करती है, उचित संसाधन हैं या नहीं, इसका जवाब देती है और चैनल को ट्यून करती है।
  6. फिर टीवी ऐप टीवी इनपुट मैनेजर को रिकॉर्डिंग शुरू करने का अनुरोध भेजता है।
  7. टीवी इनपुट सेवा यह अनुरोध प्राप्त करती है और रिकॉर्डिंग शुरू कर देती है।
  8. टीवी इनपुट सेवा वास्तविक वीडियो डेटा को अपने स्टोरेज में संग्रहीत करती है, जो बाहरी स्टोरेज या क्लाउड स्टोरेज हो सकता है।
  9. जब रिकॉर्डिंग समाप्त करने का समय आता है, तो टीवी ऐप टीवी इनपुट मैनेजर को रिकॉर्डिंग रोकने का अनुरोध भेजता है।
  10. एक बार जब टीवी इनपुट सेवा को अनुरोध प्राप्त हो जाता है, तो वह रिकॉर्डिंग बंद कर देती है और अपने संबंधित मेटाडेटा को टीवी प्रदाता के साथ जोड़ देती है ताकि टीवी ऐप अनुरोध किए जाने पर उपयोगकर्ताओं को रिकॉर्डिंग दिखा सके।

अपनी टीवी इनपुट सेवा में रिकॉर्डिंग सुविधाओं को लागू करने के बारे में अधिक जानकारी के लिए, यह टीवी रिकॉर्डिंग लेख देखें।

उपयोगी संसाधन

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

माता पिता का नियंत्रण

माता-पिता का नियंत्रण उपयोगकर्ता को अवांछित चैनलों और कार्यक्रमों को ब्लॉक करने देता है, लेकिन पिन कोड दर्ज करके ब्लॉक को बायपास कर देता है।

माता-पिता के नियंत्रण की कार्यक्षमता की जिम्मेदारी टीवी ऐप, टीवी इनपुट मैनेजर सेवा, टीवी प्रदाता और टीवी इनपुट के बीच साझा की जाती है।

माता-पिता का नियंत्रण अनिवार्य है, और यह सीटीएस सत्यापनकर्ता द्वारा कवर किया गया है।

कई देशों में परिभाषित रेटिंग सिस्टम हैं जिनका उपयोग टीवी इनपुट TVContentRating API के माध्यम से कर सकते हैं। इसके अतिरिक्त, टीवी इनपुट अपने स्वयं के कस्टम रेटिंग सिस्टम को पंजीकृत कर सकते हैं जैसा कि सीटीएस सत्यापनकर्ता परीक्षण द्वारा प्रदर्शित किया गया है, जो एक 'नकली' रेटिंग पेश करता है। उन देशों के लिए जहां एक मानक रेटिंग प्रणाली मौजूद है, डिवाइस निर्माताओं को टीवी इनपुट फ्रेमवर्क पैरेंटल कंट्रोल को किसी भी अन्य तंत्र के साथ संयोजित करने के लिए प्रोत्साहित किया जाता है।

टीवी प्रदाता

प्रत्येक चैनल पंक्ति में एक COLUMN_LOCKED फ़ील्ड होती है जिसका उपयोग विशिष्ट चैनलों को पिन कोड दर्ज किए बिना देखने से लॉक करने के लिए किया जाता है। प्रोग्राम फ़ील्ड COLUMN_CONTENT_RATING प्रदर्शन के लिए है और इसका उपयोग माता-पिता के नियंत्रण को लागू करने के लिए नहीं किया जाता है।

टीवी इनपुट मैनेजर

टीवी इनपुट मैनेजर प्रत्येक अवरुद्ध TvContentRating संग्रहीत करता है और यह सलाह देने के लिए isRatingBlocked() पर प्रतिक्रिया करता है कि क्या दी गई रेटिंग वाली सामग्री को अवरुद्ध किया जाना चाहिए।

टीवी इनपुट

जब प्रदर्शित सामग्री की रेटिंग बदल गई है (प्रोग्राम या चैनल परिवर्तन पर), या माता-पिता की नियंत्रण सेटिंग्स बदल गई हैं ( ACTION_BLOCKED_RATINGS_CHANGED और ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED पर) तो टीवी इनपुट जांच करता है कि टीवी इनपुट मैनेजर पर isRatingBlocked() को कॉल करके वर्तमान सामग्री को ब्लॉक किया जाना चाहिए या नहीं। . यदि सामग्री को अवरुद्ध किया जाना चाहिए, तो टीवी इनपुट ऑडियो और वीडियो को अक्षम कर देता है और टीवी ऐप को सूचित करता है कि वर्तमान सामग्री को notifyContentBlocked(TvContentRating) पर कॉल करके अवरुद्ध कर दिया गया है। यदि सामग्री को अवरुद्ध नहीं किया जाना चाहिए, तो टीवी इनपुट ऑडियो और वीडियो को सक्षम करता है और टीवी ऐप को सूचित करता है कि वर्तमान सामग्री को notifyContentAllowed() पर कॉल करके अनुमति दी गई है।

टीवी ऐप

माता-पिता के नियंत्रण एपीआई का सम्मान करने के लिए, और इसलिए एक संगत प्लेटफ़ॉर्म बनाने के लिए, सिस्टम टीवी ऐप को उपयोगकर्ताओं को माता-पिता के नियंत्रण को प्रबंधित करने का एक तरीका प्रदान करने की आवश्यकता है, जिसमें विशिष्ट ऐप्स द्वारा पंजीकृत किसी भी कस्टम रेटिंग भी शामिल है।

जब टीवी इनपुट द्वारा सूचित किया जाता है कि वर्तमान सामग्री अवरुद्ध है या जब उपयोगकर्ता किसी अवरुद्ध चैनल को देखने का प्रयास करता है, तो टीवी ऐप एक पिन कोड यूआई दिखाता है।

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

माता-पिता की नियंत्रण सेटिंग्स को बदलने के लिए टीवी ऐप को android.permission.MODIFY_PARENTAL_CONTROLS अनुमति घोषित करने की आवश्यकता है।

डिवाइस निर्माताओं को प्रोत्साहित किया जाता है:

  • संगतता आवश्यकताओं के प्रदर्शन के लिए संदर्भ लाइव टीवी एप्लिकेशन के विरुद्ध सीटीएस सत्यापनकर्ता अभिभावकीय नियंत्रण परीक्षण का अभ्यास करें।
  • अपने स्वयं के टीवी ऐप के संदर्भ के रूप में लाइव टीवी ऐप का उपयोग करें: विशेष रूप से कंटेंटरेटिंग्समैनेजर और रेटिंगसिस्टमफ्रैगमेंट स्रोत देखें, और वे कस्टम रेटिंग को कैसे संभालते हैं।

HDMI-सीईसी

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

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

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

एंड्रॉइड टीवी पर सीईसी एकीकरण
चित्र 17. एंड्रॉइड टीवी पर सीईसी एकीकरण

  1. सीईसी बस को वर्तमान में सक्रिय स्रोत से एक अलग स्रोत पर स्विच करने के लिए एक आदेश प्राप्त होता है।
  2. ड्राइवर HDMI-CEC HAL को कमांड भेजता है।
  3. HAL सभी ActiveSourceChangeListeners को सूचित करता है।
  4. HDMI नियंत्रण सेवा को ActiveSourceChangeListener के माध्यम से स्रोत परिवर्तन की सूचना दी जाती है।
  5. टीवी इनपुट मैनेजर सेवा टीवी ऐप के लिए स्रोत स्विच करने का इरादा उत्पन्न करती है।
  6. टीवी ऐप तब स्विच किए जा रहे टीवी इनपुट के लिए एक टीवी इनपुट मैनेजर सत्र बनाता है और उस सत्र पर setMain कॉल करता है।
  7. टीवी इनपुट मैनेजर सत्र इस जानकारी को एचडीएमआई टीवी इनपुट पर भेजता है।
  8. एचडीएमआई टीवी इनपुट साइडबैंड सतह सेट करने का अनुरोध करता है।
  9. सतह सेट होने पर टीवी इनपुट मैनेजर सेवा एचडीएमआई कंट्रोल सर्विस पर संबंधित रूटिंग कंट्रोल कमांड उत्पन्न करती है।

टीवी एकीकरण दिशानिर्देश

प्रसारण ऐप

चूँकि प्रत्येक देश में प्रसारण-विशिष्ट आवश्यकताएँ (MHEG, Teletext, HbbTV, और अधिक) होती हैं, इसलिए निर्माताओं से प्रसारण ऐप के लिए अपने स्वयं के समाधान की आपूर्ति करने की अपेक्षा की जाती है, उदाहरण के लिए:

  • एमएचईजी: देशी स्टैक
  • टेलेटेक्स्ट: देशी स्टैक
  • एचबीबीटीवी: वीड सॉफ्टवेयर से एचबीबीटीवी समाधान

एंड्रॉइड एल रिलीज़ में, एंड्रॉइड टीवी डिवाइस निर्माताओं से अपेक्षा करता है कि वे क्षेत्रीय टीवी स्टैक के लिए सिस्टम इंटीग्रेटर्स या एंड्रॉइड समाधान का उपयोग करें, सतह को टीवी सॉफ़्टवेयर स्टैक में पास करें, या लीगेसी स्टैक के साथ इंटरैक्ट करने के लिए आवश्यक कुंजी कोड पास करें।

यहां बताया गया है कि प्रसारण ऐप और टीवी ऐप कैसे इंटरैक्ट करते हैं:

  1. टीवी ऐप फ़ोकस में है, सभी कुंजियाँ प्राप्त कर रहा है।
  2. टीवी ऐप टीवी इनपुट डिवाइस को कुंजी (जैसे लाल बटन) भेजता है।
  3. टीवी इनपुट डिवाइस आंतरिक रूप से पुराने टीवी स्टैक के साथ एकीकृत होता है।
  4. एक सक्रियण कुंजी कोड (जैसे लाल बटन) प्राप्त होने पर, टीवी इनपुट डिवाइस प्रसारण ऐप्स को सक्रिय कर देता है।
  5. एक प्रसारण ऐप टीवी ऐप में फोकस लेता है और उपयोगकर्ता की गतिविधियों को संभालता है।

ध्वनि खोज/सिफारिश के लिए, प्रसारण ऐप ध्वनि खोज के लिए इन-ऐप खोज का समर्थन कर सकता है।