रेफ़रंस टीवी ऐप्लिकेशन को पसंद के मुताबिक बनाना

लाइव टीवी, Android TV डिवाइसों के लिए बनाया गया एक रेफ़रंस टीवी ऐप्लिकेशन है. हालांकि, डिवाइस बनाने वाली कंपनियां, प्रॉडक्ट के हिसाब से ज़्यादा फ़ंक्शन जोड़ना चाह सकती हैं. ये फ़ंक्शन, लाइव टीवी की डिफ़ॉल्ट सुविधाओं में शामिल नहीं होते. जैसे, पिक्चर में बदलाव करने की सुविधा, गेम मोड या 3D मोड. डिवाइस के हिसाब से इन फ़ंक्शन या विकल्पों के साथ काम करने के लिए, Live TV में ये बदलाव किए जा सकते हैं:

  • टाइम-शिफ़्ट मोड चालू करना. इस मोड की मदद से, उपयोगकर्ता कॉन्टेंट को रोक सकते हैं, तेज़ी से आगे बढ़ा सकते हैं, और पीछे ले जा सकते हैं. इंटरनल स्टोरेज के बजाय, बाहरी स्टोरेज का इस्तेमाल करने के लिए, टाइम-शिफ़्ट मोड को कॉन्फ़िगर करना.
  • टीवी के विकल्पों की पंक्ति में विकल्प जोड़ना.
  • कस्टम लाइन जोड़ना और उसमें विकल्प जोड़ना.

ध्यान दें: लाइव चैनल, Google की लाइव टीवी सेवा है. इसका इस्तेमाल, Google की सेवाओं वाले डिवाइसों पर किया जा सकता है. लाइव चैनलों को पसंद के मुताबिक बनाने के लिए, इन निर्देशों में com.android.tv.* को com.google.android.tv.* से बदलें.

लाइव टीवी को पसंद के मुताबिक बनाना

लाइव टीवी को पसंद के मुताबिक बनाने के लिए, टारगेट किए गए Android TV डिवाइस में पसंद के मुताबिक बनाने वाला पैकेज इंस्टॉल होना चाहिए. यह पैकेज, पहले से मौजूद सिस्टम ऐप्लिकेशन होना चाहिए और उसमें com.android.tv.permission.CUSTOMIZE_TV_APP अनुमति होनी चाहिए.

लाइव टीवी, इस अनुमति वाले सिस्टम पैकेज को खोजता है. साथ ही, रिसॉर्स फ़ाइलों की जांच करता है और पैकेज की उन गतिविधियों का पता लगाता है जिन्हें पसंद के मुताबिक बनाने के लिए, खास कैटगरी से मार्क किया गया है.

अहम जानकारी: लाइव टीवी को सिर्फ़ एक पैकेज के हिसाब से बनाया जा सकता है.

टाइम-शिफ़्ट मोड कॉन्फ़िगर करना

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

टाइम-शिफ़्ट को कॉन्फ़िगर करने के लिए, स्ट्रिंग रिसॉर्स trickplay_mode जोड़ें और इसकी वैल्यू को इनमें से किसी एक विकल्प पर सेट करें:

  • enabled: टाइम-शिफ़्ट करने की सुविधा चालू करें. जब कोई विकल्प न दिया गया हो, तो यह डिफ़ॉल्ट वैल्यू होती है.
  • disabled: टाइम-शिफ़्ट करने की सुविधा बंद करें.
  • use_external_storage_only: बाहरी स्टोरेज का इस्तेमाल करने के लिए, टाइम-शिफ़्ट करने की सुविधा कॉन्फ़िगर करना.
<string name="trickplay_mode">use_external_storage_only</string>
डी-पैड के बीच में मौजूद बटन को दबाने के बाद, Play कंट्रोल यूज़र इंटरफ़ेस (यूआई) चालू हो जाता है.

पहली इमेज. डी-पैड के बीच में मौजूद बटन दबाने के बाद, प्ले कंट्रोल यूज़र इंटरफ़ेस (यूआई) चालू हो जाता है.

टीवी के विकल्पों को पसंद के मुताबिक बनाना

डिवाइस बनाने वाली कंपनियां, टीवी के मौजूदा विकल्पों वाले मेन्यू में लाइव टीवी की सेटिंग के लिए पसंद के मुताबिक विकल्प जोड़ सकती हैं. जैसे, साउंड पिक्चर की सेटिंग में शॉर्टकट जोड़ना.

पसंद के मुताबिक विकल्प दिखाने के लिए, ऐसा इंटेंट-फ़िल्टर बनाएं जो किसी गतिविधि में कैटगरी com.android.tv.category.OPTIONS_ROW को फ़िल्टर करता हो. कस्टम सुविधा को डिवाइस बनाने वाली कंपनी, गतिविधि में लागू करती है. विकल्प पर क्लिक करने पर, गतिविधि शुरू हो जाती है. विकल्प के लिए, गतिविधि के टाइटल और आइकॉन का इस्तेमाल किया जाता है. उपयोगकर्ता को बेहतर अनुभव देने के लिए, टीवी के लिए पसंद के मुताबिक बनाए गए विकल्प, मौजूदा यूज़र इंटरफ़ेस (यूआई) से मेल खाने चाहिए.

ध्यान दें: किसी गतिविधि में सिर्फ़ एक विकल्प इस्तेमाल किया जा सकता है, क्योंकि Android की सीमाओं की वजह से, Live TV एक ही कैटगरी की गतिविधि में इंटेंट-फ़िल्टर में अंतर नहीं कर सकता. समस्या हल करने के लिए, गतिविधि में एक से ज़्यादा विकल्प मैनेज करना लेख पढ़ें.

डिवाइस बनाने वाली कंपनियां, 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>

पसंद के मुताबिक़ बनाए गए टीवी विकल्पों की पंक्ति का सैंपल

दूसरी इमेज. पसंद के मुताबिक बनाए गए टीवी के विकल्पों की लाइन का सैंपल (ब्राइटनेस और बिजली बचाने की सुविधा).

कस्टम टीवी विकल्पों के सैंपल.

तीसरी इमेज. कस्टम टीवी विकल्पों के सैंपल.

किसी गतिविधि में कई विकल्पों को मैनेज करना

कोई विकल्प, गतिविधि के इंटेंट-फ़िल्टर से मैप होता है और इसके उलट भी. Android, एक ही कैटगरी और कार्रवाइयों वाले इंटेंट-फ़िल्टर में अंतर नहीं करता. इसलिए, कोई गतिविधि सिर्फ़ एक विकल्प को मैनेज करती है. भले ही, उसमें एक से ज़्यादा इंटेंट-फ़िल्टर घोषित किए गए हों. किसी गतिविधि में कई विकल्पों को मैनेज करने के लिए, 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>

वैकल्पिक कस्टम लाइन का सैंपल.

चौथी इमेज. वैकल्पिक कस्टम लाइन का सैंपल.

कस्टम विकल्प डायलॉग का सैंपल.

पांचवीं इमेज. कस्टम विकल्प डायलॉग का सैंपल.