होम स्क्रीन पर मौजूद चैनल

Android TV की होम स्क्रीन या होम स्क्रीन पर, ऐसा यूज़र इंटरफ़ेस (यूआई) दिखता है जो सुझाए गए कॉन्टेंट को चैनल और प्रोग्राम की टेबल के तौर पर दिखाता है. हर पंक्ति एक चैनल है. किसी चैनल पर उपलब्ध हर कार्यक्रम के कार्ड शामिल होते हैं:

टीवी की होम स्क्रीन

इस दस्तावेज़ में होम स्क्रीन पर चैनल और प्रोग्राम जोड़ने, कॉन्टेंट अपडेट करने, उपयोगकर्ता की कार्रवाइयों को मैनेज करने, और उपयोगकर्ताओं को बेहतर अनुभव देने के तरीके के बारे में बताया गया है. (अगर आपको एपीआई के बारे में ज़्यादा जानकारी चाहिए, तो होम स्क्रीन कोडलैब और I/O 2017 Android TV सेशन देखें.)

ध्यान दें: सुझाव चैनल सिर्फ़ यहां उपलब्ध हैं Android 8.0 (एपीआई लेवल 26) और इसके बाद के वर्शन. इन संसाधनों का इस्तेमाल इन कामों के लिए किया जा सकता है: Android 8.0 (एपीआई लेवल 26) और उसके बाद के वर्शन पर काम करने वाले ऐप्लिकेशन के लिए सुझाव. यहां की यात्रा पर हूं Android के पुराने वर्शन पर चल रहे ऐप्लिकेशन के लिए सुझाव दें, को सुझावों की लाइन आज़माएं.

होम स्क्रीन का यूज़र इंटरफ़ेस (यूआई)

ऐप्लिकेशन किसी चैनल में नए चैनल बना सकते हैं, प्रोग्राम जोड़ सकते हैं, हटा सकते हैं, और अपडेट कर सकते हैं. साथ ही, किसी चैनल में प्रोग्राम का क्रम तय कर सकते हैं. उदाहरण के लिए, कोई ऐप्लिकेशन "नया क्या है" नाम से चैनल बना सकता है और नए प्रोग्राम के कार्ड दिखाने के लिए कहें.

ऐप्लिकेशन, होम स्क्रीन पर चैनलों के दिखने का क्रम तय नहीं कर सकते. जब आपका ऐप्लिकेशन कोई नया चैनल बनाता है, तो होम स्क्रीन उसे चैनल सूची में सबसे नीचे जोड़ देती है. उपयोगकर्ता, चैनलों को फिर से क्रम में लगा सकता है, छिपा सकता है, और उन्हें दिखा सकता है.

'अगला वीडियो' चैनल

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

ऐप्लिकेशन चैनल

आपका ऐप्लिकेशन जो चैनल बनाता है वे सभी इस लाइफ़ साइकल के हिसाब से होते हैं:

  1. उपयोगकर्ता आपके ऐप्लिकेशन में किसी चैनल को खोजता है और उसे होम स्क्रीन पर जोड़ने का अनुरोध करता है.
  2. ऐप्लिकेशन, चैनल बनाता है और उसे TvProvider में जोड़ देता है (इस समय चैनल नहीं दिख रहा है).
  3. ऐप्लिकेशन, सिस्टम से चैनल दिखाने के लिए कहता है.
  4. सिस्टम, उपयोगकर्ता से नए चैनल की मंज़ूरी मांगता है.
  5. नया चैनल, होम स्क्रीन की आखिरी पंक्ति में दिखता है.

डिफ़ॉल्ट चैनल

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

ज़रूरी शर्तें

Android TV की होम स्क्रीन पर, आपके ऐप्लिकेशन के बनाए हुए चैनलों और प्रोग्राम को मैनेज करने के लिए, Android के TvProvider एपीआई इस्तेमाल किए जाते हैं. सेवा देने वाली कंपनी का डेटा ऐक्सेस करने के लिए, अपने ऐप्लिकेशन के मेनिफ़ेस्ट में यहां दी गई अनुमति जोड़ें:

<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />

TvProvider की सहायता लाइब्रेरी से, प्रोवाइडर का इस्तेमाल करना आसान हो जाता है. इसे अपनी build.gradle फ़ाइल की डिपेंडेंसी में जोड़ें:

ग्रूवी

implementation 'androidx.tvprovider:tvprovider:1.0.0'

Kotlin

implementation("androidx.tvprovider:tvprovider:1.0.0")

चैनलों और प्रोग्राम के साथ काम करने के लिए, अपने प्रोग्राम में सपोर्ट लाइब्रेरी से इंपोर्ट किए गए इन डेटा को शामिल करना न भूलें:

Kotlin

import android.support.media.tv.Channel
import android.support.media.tv.TvContractCompat
import android.support.media.tv.ChannelLogoUtils
import android.support.media.tv.PreviewProgram
import android.support.media.tv.WatchNextProgram

Java

import android.support.media.tv.Channel;
import android.support.media.tv.TvContractCompat;
import android.support.media.tv.ChannelLogoUtils;
import android.support.media.tv.PreviewProgram;
import android.support.media.tv.WatchNextProgram;

चैनल

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

चैनल बनाना

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

चैनल बनाने के लिए, यह तरीका अपनाएं:

  1. चैनल बिल्डर बनाएं और इसकी विशेषताएं सेट करें. ध्यान दें कि चैनल का टाइप TYPE_PREVIEW होना चाहिए. ज़्यादा जानकारी जोड़ें एट्रिब्यूट सबमिट करें.

    Kotlin

    val builder = Channel.Builder()
    // Every channel you create must have the type TYPE_PREVIEW
    builder.setType(TvContractCompat.Channels.TYPE_PREVIEW)
            .setDisplayName("Channel Name")
            .setAppLinkIntentUri(uri)
    

    Java

    Channel.Builder builder = new Channel.Builder();
    // Every channel you create must have the type TYPE_PREVIEW
    builder.setType(TvContractCompat.Channels.TYPE_PREVIEW)
            .setDisplayName("Channel Name")
            .setAppLinkIntentUri(uri);
    
  2. प्रोवाइडर में चैनल डालें:

    Kotlin

    var channelUri = context.contentResolver.insert(
            TvContractCompat.Channels.CONTENT_URI, builder.build().toContentValues())
    

    Java

    Uri channelUri = context.getContentResolver().insert(
            TvContractCompat.Channels.CONTENT_URI, builder.build().toContentValues());
    
  3. चैनल में प्रोग्राम जोड़ने के लिए, आपको चैनल आईडी सेव करना होगा बाद में. दिए गए यूआरआई से चैनल आईडी निकालें:

    Kotlin

    var channelId = ContentUris.parseId(channelUri)
    

    Java

    long channelId = ContentUris.parseId(channelUri);
    
  4. आपको अपने चैनल के लिए एक लोगो जोड़ना होगा. Uri या Bitmap का इस्तेमाल करें. लोगो आइकॉन 80dp x 80dp का होना चाहिए और यह ओपेक होना चाहिए. इसे इसके नीचे दिखाया जाता है: सर्कुलर मास्क:

    टीवी होम स्क्रीन आइकॉन मास्क

    Kotlin

    // Choose one or the other
    storeChannelLogo(context: Context, channelId: Long, logoUri: Uri) // also works if logoUri is a URL
    storeChannelLogo(context: Context, channelId: Long, logo: Bitmap)
    

    Java

    // Choose one or the other
    storeChannelLogo(Context context, long channelId, Uri logoUri); // also works if logoUri is a URL
    storeChannelLogo(Context context, long channelId, Bitmap logo);
    
  5. डिफ़ॉल्ट चैनल बनाना (ज़रूरी नहीं): जब आपका ऐप्लिकेशन अपना पहला चैनल बनाता है चैनल बनाना चाहते हैं, तो आप इसे डिफ़ॉल्ट चैनल, ताकि यह होम में दिखे उपयोगकर्ता की कार्रवाई के बिना तुरंत स्क्रीन शेयर करें. ऐसे अन्य चैनल जिन्हें आपने बनाया है तब तक नहीं दिखती, जब तक उपयोगकर्ता साफ़ तौर पर न दिखे उन्हें चुनता है.

    Kotlin

    TvContractCompat.requestChannelBrowsable(context, channelId)
    

    Java

    TvContractCompat.requestChannelBrowsable(context, channelId);
    

  6. अपना ऐप्लिकेशन खोलने से पहले, अपना डिफ़ॉल्ट चैनल दिखाएं. आप यह काम करने के लिए, एक BroadcastReceiver जोड़ें android.media.tv.action.INITIALIZE_PROGRAMS कार्रवाई, जो होम स्क्रीन पर दिखेगी ऐप्लिकेशन इंस्टॉल होने के बाद भेजता है:
    <receiver
      android:name=".RunOnInstallReceiver"
      android:exported="true">
        <intent-filter>
          <action android:name="android.media.tv.action.INITIALIZE_PROGRAMS" />
          <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
    
    डेवलपमेंट के दौरान अपने ऐप्लिकेशन को अलग से लोड करते समय, इसकी जांच की जा सकती है adb के ज़रिए इंटेंट को ट्रिगर करना, जहां your.package.name/.YourReceiverName आपके ऐप्लिकेशन का है BroadcastReceiver:

    adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n \
        your.package.name/.YourReceiverName
    

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

चैनल अपडेट करना

चैनलों को अपडेट करना, उन्हें बनाने जैसा ही है.

जिन एट्रिब्यूट को बदलना है उन्हें सेट करने के लिए, दूसरे Channel.Builder का इस्तेमाल करें.

चैनल को अपडेट करने के लिए, ContentResolver का इस्तेमाल करें. उस चैनल आईडी का इस्तेमाल करें जिसे आपने पहली बार चैनल जोड़ते समय सेव किया था:

Kotlin

context.contentResolver.update(
        TvContractCompat.buildChannelUri(channelId),
        builder.build().toContentValues(),
        null,
        null
)

Java

context.getContentResolver().update(TvContractCompat.buildChannelUri(channelId),
    builder.build().toContentValues(), null, null);

चैनल का लोगो अपडेट करने के लिए, storeChannelLogo() का इस्तेमाल करें.

किसी चैनल को मिटाना

Kotlin

context.contentResolver.delete(TvContractCompat.buildChannelUri(channelId), null, null)

Java

context.getContentResolver().delete(TvContractCompat.buildChannelUri(channelId), null, null);

कार्यक्रम

किसी ऐप्लिकेशन चैनल में प्रोग्राम जोड़ना

PreviewProgram.Builder बनाएं और उसके एट्रिब्यूट सेट करें:

Kotlin

val builder = PreviewProgram.Builder()
builder.setChannelId(channelId)
        .setType(TvContractCompat.PreviewPrograms.TYPE_CLIP)
        .setTitle("Title")
        .setDescription("Program description")
        .setPosterArtUri(uri)
        .setIntentUri(uri)
        .setInternalProviderId(appProgramId)

Java

PreviewProgram.Builder builder = new PreviewProgram.Builder();
builder.setChannelId(channelId)
        .setType(TvContractCompat.PreviewPrograms.TYPE_CLIP)
        .setTitle("Title")
        .setDescription("Program description")
        .setPosterArtUri(uri)
        .setIntentUri(uri)
        .setInternalProviderId(appProgramId);

प्रोग्राम के टाइप के हिसाब से ज़्यादा एट्रिब्यूट जोड़ें. (एट्रिब्यूट देखने के लिए हर तरह के प्रोग्राम के लिए उपलब्ध है, तो नीचे दी गई टेबल देखें.)

प्रोवाइडर में प्रोग्राम डालें:

Kotlin

var programUri = context.contentResolver.insert(TvContractCompat.PreviewPrograms.CONTENT_URI,
        builder.build().toContentValues())

Java

Uri programUri = context.getContentResolver().insert(TvContractCompat.PreviewPrograms.CONTENT_URI,
      builder.build().toContentValues());

बाद में इस्तेमाल करने के लिए प्रोग्राम आईडी फिर से पाएं:

Kotlin

val programId = ContentUris.parseId(programUri)

Java

long programId = ContentUris.parseId(programUri);

'अगला देखें' चैनल में कार्यक्रम जोड़ना

'अगला देखें' चैनल में प्रोग्राम जोड़ने के लिए, 'वॉच में प्रोग्राम जोड़ें' लेख देखें अगला चैनल.

प्रोग्राम अपडेट करना

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

जिन एट्रिब्यूट को आपको बदलना है उन्हें सेट करने के लिए, PreviewProgram.Builder का इस्तेमाल करें, इसके बाद, प्रोग्राम को अपडेट करने के लिए, getContentResolver().update को कॉल करें. वह प्रोग्राम आईडी बताएं जिसे आपने मूल रूप से प्रोग्राम जोड़ते समय सेव किया था:

Kotlin

context.contentResolver.update(
        TvContractCompat.buildPreviewProgramUri(programId),
                builder.build().toContentValues(), null, null
)

Java

context.getContentResolver().update(TvContractCompat.buildPreviewProgramUri(programId),
    builder.build().toContentValues(), null, null);

प्रोग्राम मिटाना

Kotlin

context.contentResolver
        .delete(TvContractCompat.buildPreviewProgramUri(programId), null, null)

Java

context.getContentResolver().delete(TvContractCompat.buildPreviewProgramUri(programId), null, null);

उपयोगकर्ता की कार्रवाइयों को मैनेज करना

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

चैनल खोजना और जोड़ना

आपका ऐप्लिकेशन, यूज़र इंटरफ़ेस (यूआई) एलिमेंट दे सकता है. इससे उपयोगकर्ता अपने चैनल चुन सकता है और जोड़ सकता है. उदाहरण के लिए, ऐसा बटन जिस पर चैनल जोड़ने के लिए कहा जा सकता है.

उपयोगकर्ता की ओर से किसी चैनल का अनुरोध करने के बाद, उसे होम स्क्रीन के यूज़र इंटरफ़ेस (यूआई) में जोड़ने के लिए, उपयोगकर्ता की अनुमति पाने के लिए इस कोड को एक्ज़ीक्यूट करें:

Kotlin

val intent = Intent(TvContractCompat.ACTION_REQUEST_CHANNEL_BROWSABLE)
intent.putExtra(TvContractCompat.EXTRA_CHANNEL_ID, channelId)
try {
  activity.startActivityForResult(intent, 0)
} catch (e: ActivityNotFoundException) {
  // handle error
}

Java

Intent intent = new Intent(TvContractCompat.ACTION_REQUEST_CHANNEL_BROWSABLE);
intent.putExtra(TvContractCompat.EXTRA_CHANNEL_ID, channelId);
try {
   activity.startActivityForResult(intent, 0);
} catch (ActivityNotFoundException e) {
  // handle error
}

सिस्टम एक डायलॉग बॉक्स दिखाता है, जिसमें उपयोगकर्ता से चैनल को अनुमति देने के लिए कहा जाता है. अनुरोध के नतीजे को मैनेज करने के लिए, अपनी गतिविधि के onActivityResult तरीके (Activity.RESULT_CANCELED या Activity.RESULT_OK) का इस्तेमाल करें.

Android TV की होम स्क्रीन पर इवेंट

जब उपयोगकर्ता, ऐप्लिकेशन पर पब्लिश किए गए प्रोग्राम/चैनलों से इंटरैक्ट करता है, तब होम स्क्रीन ऐप्लिकेशन को इंटेंट भेजती है:

  • जब उपयोगकर्ता चैनल का लोगो चुनता है, तो होम स्क्रीन किसी चैनल के APP_LINK_INTENT_uri एट्रिब्यूट में सेव किए गए Uri, ऐप्लिकेशन को भेज देती है. ऐप्लिकेशन को सिर्फ़ अपना मुख्य यूज़र इंटरफ़ेस (यूआई) या चुने गए चैनल से जुड़ा कोई व्यू लॉन्च करना चाहिए.
  • जब उपयोगकर्ता कोई प्रोग्राम चुनता है, तो होम स्क्रीन किसी प्रोग्राम के INTENT_uri एट्रिब्यूट में सेव Uri, ऐप्लिकेशन को भेज देती है. ऐप्लिकेशन को चुना गया कॉन्टेंट चलाना चाहिए.
  • उपयोगकर्ता यह बता सकता है कि अब उसकी किसी प्रोग्राम में दिलचस्पी नहीं है और वह उसे होम स्क्रीन के यूज़र इंटरफ़ेस (यूआई) से हटाना चाहता है. सिस्टम, प्रोग्राम को यूज़र इंटरफ़ेस (यूआई) से हटा देता है और उस ऐप्लिकेशन को भेजता है जिसके पास प्रोग्राम का इंटेंट (android.media.tv.ACTION_Preview_PROGRAM_BROWSABLE_वनD या android.media.tv.ACTION_watch_Next_PROGRAM_BROWSABLE_CLICKSD) प्रोग्राम है. ऐप्लिकेशन को, सेवा देने वाले ऐप्लिकेशन से प्रोग्राम हटा देना चाहिए और उसे फिर से नहीं डालना चाहिए.

उन सभी Uris के लिए इंटेंट फ़िल्टर ज़रूर बनाएं जिन्हें होम स्क्रीन, उपयोगकर्ता के इंटरैक्शन के लिए भेजती है; उदाहरण के लिए:

<receiver
   android:name=".WatchNextProgramRemoved"
   android:enabled="true"
   android:exported="true">
   <intent-filter>
       <action android:name="android.media.tv.ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED" />
   </intent-filter>
</receiver>

सबसे सही तरीके

  • कई टीवी ऐप्लिकेशन के लिए, लोगों को लॉगिन करना पड़ता है. इस मामले में, BroadcastReceiver जो android.media.tv.action.INITIALIZE_PROGRAMS सुनता है, उसके लिए सुझाव चाहिए चैनल के कॉन्टेंट की पुष्टि नहीं की है.उदाहरण के लिए, आपका ऐप्लिकेशन शुरुआत में बेहतरीन कॉन्टेंट या मौजूदा समय में लोकप्रिय कॉन्टेंट दिखाने के लिए. उपयोगकर्ता के लॉग इन करने के बाद, आपके हिसाब से बनाया गया कॉन्टेंट दिखा सकती है. यह ऐप्लिकेशन की अप-सेल करने की संभावना बढ़ाने का बेहतरीन मौका है इससे पहले वे लॉगिन कर सकें.
  • जब आपका ऐप्लिकेशन फ़ोरग्राउंड में न हो और आपको किसी चैनल या तो काम को शेड्यूल करने के लिए, JobScheduler का इस्तेमाल करें (देखें: नौकरी शेड्यूल करने वाला व्यक्ति और JobService) है.
  • अगर आपका ऐप्लिकेशन ठीक से काम नहीं करता है, तो सिस्टम आपके ऐप्लिकेशन के लिए दी गई अनुमतियां रद्द कर सकता है उदाहरण के लिए: सेवा देने वाली कंपनी को डेटा का इस्तेमाल करके लगातार स्पैम करना. पक्का करें कि उस कोड को रैप करें जो प्रोवाइडर को हैंडल करने के लिए, ट्राई-कैच क्लॉज़ के साथ ऐक्सेस करता है सुरक्षा के अपवाद हैं.
  • प्रोग्राम और चैनल अपडेट करने से पहले, डेटा उपलब्ध करवाने वाली कंपनी से क्वेरी करें को डेटा को अपडेट और उसका समाधान करने की ज़रूरत होती है. उदाहरण के लिए, Google Analytics 4 प्रॉपर्टी को अपडेट करने की ज़रूरत नहीं है ऐसा प्रोग्राम जिसे उपयोगकर्ता यूज़र इंटरफ़ेस से हटाना चाहता है. बैकग्राउंड जॉब का इस्तेमाल करें, मौजूदा यूआरएल के लिए क्वेरी करने के बाद प्रोवाइडर में आपका डेटा डालता/अपडेट करता है आपके चैनल के लिए मंज़ूरी का अनुरोध करता है. इस काम को तब किया जा सकता है, जब ऐप्लिकेशन चालू हो जाता है और जब भी उसे अपने डेटा को अपडेट करने की ज़रूरत होती है.

    Kotlin

    context.contentResolver
      .query(
          TvContractCompat.buildChannelUri(channelId),
              null, null, null, null).use({
                  cursor-> if (cursor != null and cursor.moveToNext()) {
                               val channel = Channel.fromCursor(cursor)
                               if (channel.isBrowsable()) {
                                   //update channel's programs
                               }
                           }
              })
    

    Java

    try (Cursor cursor = context.getContentResolver()
          .query(
              TvContractCompat.buildChannelUri(channelId),
              null,
              null,
              null,
              null)) {
                  if (cursor != null && cursor.moveToNext()) {
                      Channel channel = Channel.fromCursor(cursor);
                      if (channel.isBrowsable()) {
                          //update channel's programs
                      }
                  }
              }
    
  • सभी इमेज (लोगो, आइकॉन, कॉन्टेंट की इमेज) के लिए यूनीक Uris का इस्तेमाल करें. इमेज अपडेट करते समय एक अलग यूआरआई का इस्तेमाल करना न भूलें. सभी इमेज कैश मेमोरी में सेव की जाती हैं. अगर इमेज बदलते समय यूआरआई को नहीं बदला जाता है, तो पुरानी इमेज दिखती रहेगी.

  • याद रखें कि WHERE क्लॉज़ की अनुमति नहीं है और WHERE क्लॉज़ वाले सेवा देने वालों को कॉल करने पर सुरक्षा में अपवाद होगा.

विशेषताएं

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

चैनल की विशेषताएं

आपको हर चैनल के लिए इन एट्रिब्यूट की जानकारी देनी होगी:

एट्रिब्यूट नोट
वाई-फ़ाई के टाइप के बारे में जानकारी TYPE_PREVIEW पर सेट किया गया.
DISPLAY_NAME चैनल के नाम पर सेट करें.
APP_LINK_INTENT_यूआरआई जब लोग चैनल का लोगो चुनते हैं, तब सिस्टम चैनल से जुड़ी गतिविधि शुरू करने के लिए इंटेंट भेजता है. इस इंटेंट में चैनल से जुड़ा कॉन्टेंट दिखाया जाता है. इस एट्रिब्यूट को उस गतिविधि के इंटेंट फ़िल्टर में इस्तेमाल किए गए Uri पर सेट करें.

इसके अलावा, चैनल में छह फ़ील्ड भी होते हैं, जो संगठन में काम करने वालों के लिए ऐप्लिकेशन के इस्तेमाल के लिए रिज़र्व हैं. इन फ़ील्ड का इस्तेमाल कुंजियां या ऐसी दूसरी वैल्यू सेव करने के लिए किया जा सकता है जिनसे ऐप्लिकेशन को, चैनल को उसके इंटरनल डेटा स्ट्रक्चर से मैप करने में मदद मिल सकती है:

  • इंटरनल_PROVIDER_ID
  • इंटरनल_PROVIDER_DATA
  • इंटरनल_PROVIDER_FLAG1
  • इंटरनल_PROVIDER_FLAG2
  • इंटरनल_PROVIDER_FLAG3
  • इंटरनल_PROVIDER_FLAG4

प्रोग्राम की विशेषताएं

हर तरह के प्रोग्राम की विशेषताओं के लिए, अलग-अलग पेज देखें:

नमूना कोड

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