Skip to content

Most visited

Recently visited


Building TV Channels

Dependencies and Prerequisites

  • Android 5.0 (API level 21) or higher

You should also read

Try It Out

Watching live TV shows and other continuous, channel-based content is a big part of the TV experience. Users are accustomed to selecting and watching shows on TV by channel browsing. The TV Input Framework creates channels for publishing video or music content in the TV programming guide.

Note: The TV Input Framework is meant to be used by OEMs to build channels for the Android system TV app. It is supported in Android 5.0 (API level 21) through Android 7.1 (API level 25) only. Third-party apps should build channels for their content using the Android TV home screen APIs. See Recommending TV Content for details.

The TV Input Framework provides a unified method for receiving and playback of live video content from hardware sources, such as HDMI ports and built-in-tuners, and software sources, such as video streamed over the internet.

The framework enables developers to define live TV input sources by implementing a TV input service. This service publishes a list of channels and programs to the TV Provider. The live TV app on a TV device gets the list of available channels and programs from the TV Provider and displays them to a user. When a user selects a specific channel, the live TV app creates a session for the associated TV input service through the TV Input Manager, and tells the TV input service to tune to the requested channel and play the content to a display surface provided by the TV app.

Figure 1. Functional diagram of the TV Input Framework

The TV Input Framework is designed to provide access to a wide variety of live TV input sources and bring them together in a single user interface for users to browse, view, and enjoy content. Building a TV input service for your content can help make it more accessible on TV devices.


Developing a TV Input Service
Learn how to develop a TV input service, which works with the system TV app.
Working with Channel Data
Learn how to describe channel and program data for the system.
Managing User Interaction
Learn how to present overlays, manage content availability, and handle content selection.
Supporting Time-Shifting
Learn how to support time-shifting in your TV input service.
Supporting Content Recording
Learn how to support content recording in your TV input service.
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)