लाइव टीवी एंड्रॉइड टेलीविज़न उपकरणों के लिए डिज़ाइन किया गया एक संदर्भ टीवी ऐप है। हालाँकि, डिवाइस निर्माता अधिक उत्पाद-विशिष्ट फ़ंक्शन जोड़ना चाह सकते हैं, जो लाइव टीवी के डिफ़ॉल्ट कार्यान्वयन में शामिल नहीं हैं, जैसे चित्र समायोजन, गेम मोड, या 3 डी मोड। इन डिवाइस-विशिष्ट कार्यों या विकल्पों का समर्थन करने के लिए, लाइव टीवी इन अनुकूलन का समर्थन करता है:
- टाइम-शिफ्टिंग मोड को सक्षम करना, जो उपयोगकर्ताओं को रुकने, तेजी से आगे बढ़ने और रिवाइंड करने की अनुमति देता है। आंतरिक भंडारण के बजाय बाह्य भंडारण का उपयोग करने के लिए टाइम-शिफ्टिंग मोड को कॉन्फ़िगर करना।
- टीवी विकल्प पंक्ति में विकल्प जोड़ना।
- एक कस्टम पंक्ति जोड़ना और उसमें विकल्प जोड़ना।
ध्यान दें : लाइव चैनल Google का लाइव टीवी का कार्यान्वयन है जिसका उपयोग Google सेवाओं वाले उपकरणों पर किया जा सकता है। लाइव चैनल को अनुकूलित करने के लिए, इन निर्देशों में com.android.tv.*
को com.google.android.tv.*
से बदलें।
लाइव टीवी को अनुकूलित करें
लाइव टीवी को अनुकूलित करने के लिए, लक्ष्य एंड्रॉइड टीवी डिवाइस को एक अनुकूलन पैकेज स्थापित करने की आवश्यकता होती है, जो com.android.tv.permission.CUSTOMIZE_TV_APP
अनुमति के साथ एक प्रीबिल्ट सिस्टम ऐप होना चाहिए।
लाइव टीवी इस अनुमति के साथ एक सिस्टम पैकेज की खोज करता है, संसाधन फ़ाइलों की जांच करता है, और अनुकूलन को संसाधित करने के लिए विशिष्ट श्रेणियों के साथ चिह्नित पैकेज की गतिविधियों का पता लगाता है।
मुख्य बिंदु : केवल एक पैकेज लाइव टीवी को कस्टमाइज़ कर सकता है।
टाइम-शिफ्टिंग मोड कॉन्फ़िगर करें
टाइम-शिफ्टिंग (ट्रिकप्ले) एंड्रॉइड टेलीविजन उपकरणों को रोकने, रिवाइंड करने और तेजी से फॉरवर्ड चैनल प्लेबैक करने की अनुमति देता है। लाइव टीवी कार्यान्वयन में, प्ले नियंत्रण यूआई के माध्यम से टाइम-शिफ्टिंग का उपयोग किया जा सकता है। लाइव टीवी में टाइम-शिफ्टिंग डिफ़ॉल्ट रूप से सक्षम है, लेकिन इसे अक्षम किया जा सकता है। टाइम-शिफ्टिंग को केवल बाह्य भंडारण का उपयोग करने के लिए भी कॉन्फ़िगर किया जा सकता है।
टाइम-शिफ्टिंग को कॉन्फ़िगर करने के लिए, स्ट्रिंग रिसोर्स trickplay_mode
जोड़ें और इसका मान इन विकल्पों में से किसी एक पर सेट करें:
-
enabled
: टाइम-शिफ्टिंग सक्षम करें। जब कोई विकल्प नहीं दिया जाता है तो यह डिफ़ॉल्ट मान होता है। -
disabled
: टाइम-शिफ्टिंग अक्षम करें। -
use_external_storage_only
: बाहरी भंडारण का उपयोग करने के लिए टाइम-शिफ्टिंग कॉन्फ़िगर करें।
<string name="trickplay_mode">use_external_storage_only</string>
टीवी विकल्प अनुकूलित करें
डिवाइस निर्माता मौजूदा टीवी विकल्प मेनू में लाइव टीवी सेटिंग्स के लिए कस्टम विकल्प जोड़ सकते हैं, जैसे ध्वनि चित्र सेटिंग्स में शॉर्टकट जोड़ना।
एक कस्टम विकल्प इंगित करने के लिए, एक आशय-फ़िल्टर घोषित करें जो किसी गतिविधि में श्रेणी com.android.tv.category.OPTIONS_ROW
को फ़िल्टर करता है। गतिविधि में डिवाइस निर्माता द्वारा कस्टम सुविधा लागू की जाती है। यदि विकल्प पर क्लिक किया जाता है तो गतिविधि शुरू हो जाती है। विकल्प के लिए गतिविधि का शीर्षक और आइकन का उपयोग किया जाता है। सर्वोत्तम उपयोगकर्ता अनुभव प्रदान करने के लिए अनुकूलित टीवी विकल्प मौजूदा यूआई से मेल खाना चाहिए।
ध्यान दें : एक गतिविधि केवल एक विकल्प को संभाल सकती है क्योंकि एंड्रॉइड सीमा के कारण लाइव टीवी एक ही श्रेणी वाली गतिविधि में इरादे-फ़िल्टर को अलग नहीं कर सकता है। समाधान के लिए किसी गतिविधि में अनेक विकल्पों को प्रबंधित करें देखें।
डिवाइस निर्माता AndroidManifest.xml
में android:priority
परिभाषित करके मौजूदा विकल्पों के पहले या बाद में एक कस्टम विकल्प भी रख सकते हैं। 100 से कम परिभाषित प्राथमिकता मान वाला एक विकल्प मौजूदा आइटम से पहले दिखता है और 100 से अधिक मान बाद में दिखता है। एकाधिक कस्टम विकल्प (मौजूदा विकल्पों से पहले या बाद में) उनकी प्राथमिकता के आधार पर आरोही क्रम में क्रमबद्ध किए जाते हैं। यदि विकल्पों की प्राथमिकता समान है, तो उनके बीच क्रम अपरिभाषित है।
इस उदाहरण में, विकल्प सबसे पहले टीवी विकल्प पंक्ति में दिखाई देता है, और यदि विकल्प पर क्लिक किया जाता है तो PictureSettingsActivity लॉन्च हो जाती है।
<activity android:name=".PictureSettingsActivity" android:label="@string/activity_label_picture_settings" android:theme="@style/Theme.Panel"> <intent-filter android:icon="@drawable/ic_tvoptions_brightness" android:label="@string/option_label_brightness" android:priority="0"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.OPTIONS_ROW" /> </intent-filter> </activity>
किसी गतिविधि में एकाधिक विकल्पों को संभालें
एक विकल्प किसी गतिविधि के इरादे-फ़िल्टर को मैप करता है और इसके विपरीत। क्योंकि एंड्रॉइड समान श्रेणियों और कार्यों के साथ इरादे-फ़िल्टर को अलग नहीं करता है, एक गतिविधि केवल एक विकल्प को संभालती है, भले ही इसमें कई इरादे-फ़िल्टर घोषित किए गए हों। किसी गतिविधि में एकाधिक विकल्पों को संभालने के लिए, AndroidManifest.xml
में <activity-alias>
उपयोग करें। गतिविधि में, क्लिक किए गए विकल्प की पहचान करने के लिए getIntent().getComponent()
का उपयोग करें।
<activity-alias android:name=".AnyUniqueName" android:targetActivity=".PictureSettingsActivity"> <intent-filter android:icon="@drawable/ic_tvoptions_energy_saving" android:label="@string/option_label_energy_saving" android:priority="1"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.OPTIONS_ROW" /> </intent-filter> </activity-alias>
एक कस्टम पंक्ति बनाएँ
डिवाइस निर्माता टीवी विकल्प पंक्ति के ऊपर एक पंक्ति जोड़ और अनुकूलित कर सकते हैं। यह कस्टम पंक्ति वैकल्पिक है.
पंक्ति शीर्षक
res/values/strings.xml
में एक partner_row_title
स्ट्रिंग को परिभाषित करें। स्ट्रिंग का मान कस्टम पंक्ति शीर्षक के लिए उपयोग किया जाता है।
<string name="partner_row_title">Partner Row</string>
कस्टम विकल्प
कस्टम पंक्ति में कस्टम विकल्प जोड़ने के लिए, टीवी विकल्प मेनू में विकल्प जोड़ने की प्रक्रिया का पालन करें, लेकिन इसके बजाय श्रेणी का नाम com.android.tv.category.PARTNER_ROW
में बदल दें।
<activity android:name=".ThreeDimensionalSettingDialogActivity" android:label="@string/activity_label_3d" android:theme="@android:style/Theme.Material.Light.Dialog"> <intent-filter android:icon="@drawable/ic_tvoptions_3d" android:priority="0"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.PARTNER_ROW" /> </intent-filter> </activity>