將節目新增至「接下來請觀看」頻道
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
「接下來請看」頻道是主畫面上的第二列,
應用程式列系統建立並維護這個頻道。應用程式可新增下列項目:
加入「接下來請看」頻道的節目:使用者標示為「接下來請看」的節目
有趣、半途停止觀看,或與其內容相關的影片
使用者正在觀看的節目 (例如影集的下一集或某季的下一集)
顯示)。
「接下來請看」頻道有幾項限制:應用程式無法移動、移除,或是
隱藏「接下來請看」頻道的資料列。
操作步驟
將節目插入「接下來請看」頻道的做法類似
將節目插入自己的頻道。
如需「接下來請看」的特定詳細資料,請參閱以下各節。
在 Google TV 上發布至「接下來請看」頻道 (顯示為「繼續」
觀看」) 須事先獲得 Google 通過認證程序和
會使用伺服器端處理功能,依據節目屬性排序節目。
如要開始認證程序,請
提交這份連結表單。
將內容插入「接下來請看」頻道時,請務必遵守下列規範:
選取節目類型
「接下來請看」節目分為四種類型。選取適當的類型:
類型 | 附註 |
WATCH_NEXT_TYPE_CONTINUE | 使用者在觀看內容時停止。 |
WATCH_NEXT_TYPE_NEXT | 使用者正在觀看的系列叢書中的下一個節目
可以使用。舉例來說,如果使用者正在觀看系列的第 3 集,應用程式可以建議他們繼續觀看第 4 集。 |
WATCH_NEXT_TYPE_NEW | 現在可以清楚呈現使用者正在觀看的內容。舉例來說,使用者目前觀看的是影集第 5 集,而第 6 集可供觀看。 |
WATCH_NEXT_TYPE_WATCHLIST | 當使用者儲存節目時,由系統或應用程式插入。 |
詳情請參閱「接下來請看」屬性。
使用 WatchNextProgram 建構工具
使用 WatchNextProgram.Builder
。若需更多資訊,請參閲
「接下來請看」屬性。
Kotlin
val builder = WatchNextProgram.Builder()
builder.setType(TvContractCompat.WatchNextPrograms.TYPE_MOVIE)
.setWatchNextType(TvContractCompat.WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE)
.setLastEngagementTimeUtcMillis(time)
.setTitle("Title")
.setDescription("Program description")
.setPosterArtUri(uri)
.setIntentUri(uri)
.setInternalProviderId(appProgramId)
val watchNextProgramUri = context.contentResolver
.insert(TvContractCompat.WatchNextPrograms.CONTENT_URI,
builder.build().toContentValues())
Java
WatchNextProgram.Builder builder = new WatchNextProgram.Builder();
builder.setType(TvContractCompat.WatchNextPrograms.TYPE_MOVIE)
.setWatchNextType(TvContractCompat.WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE)
.setLastEngagementTimeUtcMillis(time)
.setTitle("Title")
.setDescription("Program description")
.setPosterArtUri(uri)
.setIntentUri(uri)
.setInternalProviderId(appProgramId);
Uri watchNextProgramUri = context.getContentResolver()
.insert(TvContractCompat.WatchNextPrograms.CONTENT_URI, builder.build().toContentValues());
使用 TvContractCompat.buildWatchNextProgramUri(long watchNextProgramId)
即可:
建立更新「接下來請看」計畫所需的Uri
。
當使用者將節目新增到「接下來請看」頻道時,系統會複製
加入計畫可將意圖
TvContractCompat.ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT
即可通知應用程式
該程式已新增此意圖包含兩個額外項目:程式 ID
在「接下來請看」中複製節目 ID,以及為節目建立的節目 ID
頻道。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[null,null,["上次更新時間:2025-07-27 (世界標準時間)。"],[],[],null,["# Add programs to the Watch Next channel\n\nThe Watch Next channel is the second row that appears in the home screen, after\nthe apps row. The system creates and maintains this channel. Your app can add\nprograms to the Watch Next channel: programs that the user marked as\ninteresting, stopped watching in the middle, or that are related to the content\nthe user is watching (like the next episode in a series or next season of a\nshow).\n| **Note:** On the home screen, the Watch Next channel has the label **Play Next** . However, the Android classes used to manage the Watch Next channel are [`WatchNextProgram`](/reference/androidx/tvprovider/media/tv/WatchNextProgram) and [`WatchNextPrograms`](/reference/android/media/tv/TvContract.WatchNextPrograms). They have methods and constants with the stem \"watchnext\".\n\nThe Watch Next channel has some constraints: your app cannot move, remove, or\nhide the Watch Next channel's row.\n\nSteps\n-----\n\nInserting programs into the Watch Next channel is similar to\n[inserting programs into your own channel](/training/tv/discovery/recommendations-channel#add-programs).\nSee the following sections for details specific to Watch Next.\n\nPublishing to the Watch Next channel on Google TV (displayed as \"Continue\nwatching\") requires prior approval by Google through a certification process and\nuses server-side processing to sort programs based on their attributes.\nTo start the certification process, please\nsubmit this [linked form](https://docs.google.com/forms/d/e/1FAIpQLSeaNhHjDNM8osXPgkXeUQMSl5CntaEw0EeGYHIAc5jxUhQuHg/viewform).\n\nWhen inserting content into the Watch Next channel, you must follow these guidelines:\n\n- [Watch Next guidelines for app developers](/training/tv/discovery/guidelines-app-developers)\n- [Watch Next guidelines for TV providers](/training/tv/discovery/guidelines-tv-providers)\n\n### Select a type of program\n\nThere are four types of Watch Next programs. Select the appropriate type:\n\n| Type | Notes |\n|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `WATCH_NEXT_TYPE_CONTINUE` | The user stopped while watching content. |\n| `WATCH_NEXT_TYPE_NEXT` | The next available program in a series the user is watching is available. For example, if the user is watching episode 3 of a series, the app can suggest that they watch episode 4 next. |\n| `WATCH_NEXT_TYPE_NEW` | New content that clearly follows what the user is watching is now available. For example, the user is watching episode number 5 from a series and episode 6 becomes available for watching. |\n| `WATCH_NEXT_TYPE_WATCHLIST` | Inserted by the system or the app when the user saves a program. |\n\nFor more information, see [Watch Next attributes](/training/tv/discovery/watch-next-programs).\n\n### Use the WatchNextProgram builder\n\nUse a `WatchNextProgram.Builder`. For more information, see\n[Watch Next attributes](/training/tv/discovery/watch-next-programs). \n\n### Kotlin\n\n```kotlin\nval builder = WatchNextProgram.Builder()\nbuilder.setType(TvContractCompat.WatchNextPrograms.TYPE_MOVIE)\n .setWatchNextType(TvContractCompat.WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE)\n .setLastEngagementTimeUtcMillis(time)\n .setTitle(\"Title\")\n .setDescription(\"Program description\")\n .setPosterArtUri(uri)\n .setIntentUri(uri)\n .setInternalProviderId(appProgramId)\n\nval watchNextProgramUri = context.contentResolver\n .insert(TvContractCompat.WatchNextPrograms.CONTENT_URI,\n builder.build().toContentValues())\n```\n\n### Java\n\n```java\nWatchNextProgram.Builder builder = new WatchNextProgram.Builder();\nbuilder.setType(TvContractCompat.WatchNextPrograms.TYPE_MOVIE)\n .setWatchNextType(TvContractCompat.WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE)\n .setLastEngagementTimeUtcMillis(time)\n .setTitle(\"Title\")\n .setDescription(\"Program description\")\n .setPosterArtUri(uri)\n .setIntentUri(uri)\n .setInternalProviderId(appProgramId);\n\nUri watchNextProgramUri = context.getContentResolver()\n .insert(TvContractCompat.WatchNextPrograms.CONTENT_URI, builder.build().toContentValues());\n```\n\nUse `TvContractCompat.buildWatchNextProgramUri(long watchNextProgramId)` to\ncreate the `Uri` you need to update a Watch Next program.\n\nWhen the user adds a program to the Watch Next channel, the system copies the\nprogram to the row. It sends the intent\n`TvContractCompat.ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT` to notify the app\nthat the program has been added. The intent includes two extras: the program ID\nthat was copied and the program ID created for the program in the Watch Next\nchannel."]]