TV 應用程式檢查清單
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
使用者會喜歡 TV 應用程式提供一致、合乎邏輯且可預測的體驗。使用者應能在應用程式和 Android TV 中瀏覽,不會迷路,也不需要「重設」UI 並重新開始。使用者會喜歡清晰、色彩鮮豔且功能齊全的介面,這類介面能讓使用者享受美好的體驗。有了這些概念,您就能打造出適合 Android TV 的應用程式,並提供使用者期待的效能。
這些檢查清單涵蓋了應用程式和遊戲開發的主要面向,有助於確保您的應用程式能提供最佳體驗。如需瞭解遊戲專屬的其他考量事項,請參閱「遊戲」一節。
如要瞭解 Android TV 應用程式符合透過 Google Play 發行資格的條件,請參閱「TV 應用程式品質」一文。
支援的電視板型規格
這些檢查清單項目適用於遊戲和應用程式。
使用者介面設計
這些檢查清單項目適用於遊戲和應用程式。
搜尋與內容探索
這些檢查清單項目適用於遊戲和應用程式。
-
在 Android TV 全球搜尋方塊中,提供應用程式的搜尋結果。
-
為搜尋功能提供電視專用的資料欄位。
-
請務必在詳細資料畫面中顯示所發現的內容,讓使用者能立即開始觀看。
電視主畫面
這些檢查清單項目適用於主畫面的版面配置和內容。
頻道
- 請提供能代表頻道內容的有意義名稱。請勿使用應用程式名稱做為頻道名稱。
- 除非與使用者互動,否則請勿變更管道名稱。
- 為每個管道加入相關圖示。圖示不必是應用程式的確切圖示,也可以是頻道中內容的品牌化表示方式。
- 請為每個頻道提供獨特的內容,並避免模仿「播放下一集」列的功能。舉例來說,讓使用者從影片中停下的地方繼續觀看,並非頻道的有效用途。
管道中的內容
- 每個頻道中的節目都只能包含單一內容,節目不得包含影片合輯。
- 請勿使用計畫傳送宣傳訊息或廣告。
- 為每個節目加入適當的說明,並正確對應中繼資料。例如,內容分級不得顯示在預期的標題位置。
- 請勿裁剪或拉伸代表節目內容的預覽圖片。必須符合其中一個可用的顯示比例。
- 使用者一選取節目,就開始播放。
播放下一個
- 除非使用者以某種方式與內容互動,否則請勿將內容新增至「接下來播放」列。舉例來說,您可以為使用者目前觀看的系列影集新增下一集,但在使用者看完目前的系列影集後,不要新增相關但不同的系列影集。
- 請將「接下來請看」內容限制為傳統電視節目、電影或活動。請勿在「接著播放」列中新增短片。
播放應用程式
這些檢查清單項目適用於執行媒體播放的應用程式。
遊戲
這些檢查清單項目適用於遊戲。
-
在資訊清單中設定
isGame
標記,讓遊戲顯示在主畫面的「遊戲」專區中。
-
請確認遊戲控制器支援功能不依賴「開始」、「選取」或「選單」按鈕。並非所有控制器都有這些按鈕。
-
使用一般遊戲控制器圖片,不含特定控制器品牌,以顯示遊戲按鈕對應。
-
檢查乙太網路和 Wi-Fi 連線。
-
為使用者提供簡單的退出應用程式方式。
發布到 Android TV 平台
如要瞭解如何發行至 Android TV,請參閱在 Google Play 發布 TV 應用程式的詳細指南。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[null,null,["上次更新時間:2025-07-27 (世界標準時間)。"],[],[],null,["# TV apps checklists\n\nUsers enjoy the TV app experience when it is consistent, logical, and predictable.\nThey should be able to navigate within your app and throughout Android TV without getting lost or\nhaving to \"reset\" the UI and start over. Users appreciate clear, colorful, and functional interfaces\nthat make the experience magical. With these ideas in mind, you can create an app that fits nicely\nin Android TV and performs as users expect.\n\n\nThese checklists cover the main aspects of development for both apps and games\nto help ensure that your app provides the best possible experience. Additional considerations\nfor games only are covered in the [Games](#games) section.\n\n\nFor the criteria that qualify an Android TV app to be distributed through Google Play, see\n[TV app quality](/docs/quality-guidelines/tv-app-quality).\n\nTV form factor support\n----------------------\n\nThese checklist items apply to games and apps.\n\n- Identify the [main TV activity](/training/tv/get-started/create#tv-activity) with the [CATEGORY_LEANBACK_LAUNCHER](/reference/android/content/Intent#CATEGORY_LEANBACK_LAUNCHER) filter in the manifest.\n- Provide a [home screen banner](/training/tv/get-started/create#banner) for each language supported by your app, with the following characteristics:\n - Banner measures 320x180 px.\n - Banner resource is in the `drawables/xhdpi` directory.\n - Banner image includes localized text to identify the app.\n- Consider whether your app needs to prevent the device from entering [Ambient Mode](/training/tv/playback/ambient-mode). This is particularly relevant for media [playback apps](#playback-apps).\n- Don't [declare a requirement](/training/tv/get-started/hardware#declare-hardware-requirements) for hardware that might be unsupported.\n- Make sure your [permissions](/training/tv/get-started/hardware#hardware-permissions) don't imply hardware requirements.\n\nUser interface design\n---------------------\n\nThese checklist items apply to games and apps.\n\n- Specify activities with landscape orientation by setting `android:`[screenOrientation](/guide/topics/manifest/activity-element#screen)`=\"landscape\"`.\n- Provide appropriate [layout resources](/training/tv/playback/leanback/layouts#structure) for landscape mode.\n- Make sure that [text and controls](/training/tv/playback/leanback/layouts#visibility) are large enough to be visible from a distance.\n- Provide [high-resolution bitmaps and icons](/training/tv/playback/leanback/layouts#density-resources) for HDTV screens.\n- Make sure your icons and logo conform to Android TV specifications.\n- Allow for [overscan](/training/tv/playback/leanback/layouts#overscan) in your layout.\n- When actively playing user-initiated media playback, prevent the device from entering [Ambient Mode](/training/tv/playback/ambient-mode).\n- Make sure every UI element works with both D-pad and game controllers. See [TV navigation](/training/tv/get-started/navigation) and [Handle TV hardware](/training/tv/get-started/hardware#controllers).\n- Change the [background image](/training/tv/playback/leanback/browse#background) as users browse through content.\n- Customize the [background color](/training/tv/playback/leanback/card) to match your branding in Leanback fragments.\n- Make sure that your UI does not require a touchscreen. See [Touchscreen](/training/tv/get-started/hardware#no-touchscreen) and [Declare touchscreen not required](/training/tv/get-started/create#no-touchscreen).\n- Follow the [guidelines for effective advertising](/training/tv/playback/leanback/layouts#advertising).\n- To guide the user through a series of decisions, use the Leanback library's [guided step API](/training/tv/playback/leanback/guided-step).\n\nSearch and content discovery\n----------------------------\n\nThese checklist items apply to games and apps.\n\n- Provide [search results](/training/tv/discovery/searchable#provide) from your app in the Android TV global search box.\n- Provide TV-specific [data fields](/training/tv/discovery/searchable#columns) for search.\n- Make sure your app presents discovered content in a [details screen](/training/tv/discovery/searchable#details) that lets the user start watching the content immediately.\n\nTV home screen\n--------------\n\n\nThese checklist items apply to the layout and content of the [home screen](/training/tv/discovery/recommendations-channel).\n\n### Channels\n\n- Provide a meaningful name that represents the channel's content. Don't use your app's name as a channel name.\n- Don't change the channel name unless there is some interaction with the user.\n- Include an associated icon for each channel. The icon doesn't need to be your app's exact icon; it can be a branded representation of the content in the channel.\n- Make each channel unique, and don't mimic the functionality of the Play Next row. For example, letting users continue watching where they left off in a video is not a valid use for a channel.\n\n### Content in channels\n\n- Limit each program in a channel to a single piece of content. A program must not contain a collection of videos.\n- Don't use programs for promotional messages or ads.\n- Include a suitable description for each program, and map its metadata correctly. For example, the content rating must not appear where the title is expected.\n- Don't crop or stretch preview images representing program content. They must fit one of the available [aspect ratios](/training/tv/discovery/preview-videos).\n- Start playing a program as soon as the user selects it.\n\n### Play Next\n\n- Don't add content to the Play Next row unless the user has been interacting with it some way. For example, you can add the next episode in a series that the user is currently watching, but don't add a related but different series when the user completes the current series.\n- Limit Play Next content to traditional TV shows, movies, or events. Don't add clips to the Play Next row.\n\nPlayback apps\n-------------\n\nThese checklist items apply to apps that perform media playback.\n\n- [Register a media session](/guide/topics/media-apps/working-with-a-media-session) to inform the platform of media playback state and to let playback controls be delegated to the app.\n- Set the [`FLAG_KEEP_SCREEN_ON`](/reference/android/view/WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON) flag while video is playing on the screen to [prevent the\n device from entering standby or Ambient Mode during playback](/training/tv/playback/ambient-mode#preventing-ambient-mode).\n- Validate that media commands accurately expose metadata and control playback using [Media Controller Test](https://github.com/googlesamples/android-media-controller) and the [Media Session\n Validator](https://developers.google.com/cast/docs/android_tv_receiver/mediasession_validator).\n- Comply with the [Ambient mode-related quality\n guidelines.](/docs/quality-guidelines/tv-app-quality#ambient-mode) Ambient Mode keeps users quietly entertained between watch sessions and prevents screen burn in.\n- Profile your app's memory and make sure to check [`ActivityManager.isLowRamDevice()`](/reference/android/app/ActivityManager#isLowRamDevice()) for discovering low-RAM devices. For those devices, you must follow the requirements in the [Optimize memory usage guidelines](/training/tv/playback/memory).\n\nGames\n-----\n\nThese checklist items apply to games.\n\n- Set the `isGame` flag in the manifest so that your game appears in the games section of the [home screen](/training/tv/games#Launcher).\n- Make sure [game controller\n support](/training/tv/games#control) doesn't depend on the Start, Select, or Menu buttons. Not all controllers have these buttons.\n- Use a generic gamepad graphic, without specific controller branding, to show [game button mappings](/training/tv/games#control).\n- Check for both ethernet and Wi-Fi [connectivity](/training/basics/network-ops/reading-network-state).\n- Provide users with a clean way to [exit](/training/tv/games#exit) your app.\n\nDistribute to Android TV\n------------------------\n\n\nTo learn how to distribute to Android TV, see the\n[detailed guide for publishing TV apps on Google\nPlay](/training/tv/publishing/distribute)."]]