TvContractCompat

class TvContractCompat


The contract between the TV provider and applications. Contains definitions for the supported URIs and columns.

Overview

TvContract defines a basic database of TV content metadata such as channel and program information. The information is stored in Channels and Programs tables.

  • A row in the Channels table represents information about a TV channel. The data format can vary greatly from standard to standard or according to service provider, thus the columns here are mostly comprised of basic entities that are usually seen to users regardless of standard such as channel number and name.
  • A row in the Programs table represents a set of data describing a TV program such as program title and start time.

Summary

Nested types

Common base for the tables of TV channels/programs.

Column definitions for the TV channels table.

A sub-directory of a single TV channel that represents its primary logo.

Column definitions for the preview TV programs table.

Column definitions for the TV programs table.

Canonical genres for TV programs.

Column definitions for the recorded TV programs table.

Column definitions for the "watch next" TV programs table.

Constants

const String!
ACTION_INITIALIZE_PROGRAMS = "android.media.tv.action.INITIALIZE_PROGRAMS"

Broadcast Action: sent to the target TV input after it is first installed to notify the input to initialize its channels and programs to the system content provider.

const String!
ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT = "android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT"

Broadcast Action: sent by the system to tell the target TV input that one of its existing preview programs is added to the watch next programs table by user.

const String!
ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED"

Broadcast Action: sent by the system to tell the target TV input that one of its preview program's browsable state is disabled, i.e., it will no longer be shown to users, which, for example, might be a result of users' interaction with UI.

const String!
ACTION_REQUEST_CHANNEL_BROWSABLE = "android.media.tv.action.REQUEST_CHANNEL_BROWSABLE"

Activity Action: sent by an application telling the system to make the given channel browsable with user interaction.

const String!
ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED"

Broadcast Action: sent by the system to tell the target TV input that one of its "watch next" program's browsable state is disabled, i.e., it will no longer be shown to users, which, for example, might be a result of users' interaction with UI.

const String!
AUTHORITY = "android.media.tv"

The authority for the TV provider.

const String!
EXTRA_CHANNEL_ID = "android.media.tv.extra.CHANNEL_ID"

The key for a bundle parameter containing a channel ID as a long integer

const String!
EXTRA_PREVIEW_PROGRAM_ID = "android.media.tv.extra.PREVIEW_PROGRAM_ID"

The key for a bundle parameter containing a program ID as a long integer.

const String!
EXTRA_WATCH_NEXT_PROGRAM_ID = "android.media.tv.extra.WATCH_NEXT_PROGRAM_ID"

The key for a bundle parameter containing a watch next program ID as a long integer.

Public functions

java-static Uri!

Builds a URI that points to a channel logo.

java-static Uri!
buildChannelLogoUri(channelUri: Uri!)

Builds a URI that points to a channel logo.

java-static Uri!
buildChannelUri(channelId: Long)

Builds a URI that points to a specific channel.

java-static Uri!

Build a special channel URI intended to be used with pass-through inputs.

java-static Uri!

Builds a URI that points to all channels from a given TV input.

java-static String!

Builds an ID that uniquely identifies a TV input service.

java-static Uri!
buildPreviewProgramUri(previewProgramId: Long)

Builds a URI that points to a specific preview program.

java-static Uri!

Builds a URI that points to all preview programs on a given channel.

java-static Uri!

Builds a URI that points to all preview programs on a given channel.

java-static Uri!
buildProgramUri(programId: Long)

Builds a URI that points to a specific program.

java-static Uri!

Builds a URI that points to all programs on a given channel.

java-static Uri!

Builds a URI that points to all programs on a given channel.

java-static Uri!
buildProgramsUriForChannel(channelId: Long, startTime: Long, endTime: Long)

Builds a URI that points to programs on a specific channel whose schedules overlap with the given time frame.

java-static Uri!
buildProgramsUriForChannel(channelUri: Uri!, startTime: Long, endTime: Long)

Builds a URI that points to programs on a specific channel whose schedules overlap with the given time frame.

java-static Uri!
buildRecordedProgramUri(recordedProgramId: Long)

Builds a URI that points to a specific recorded program.

java-static Uri!
buildWatchNextProgramUri(watchNextProgramId: Long)

Builds a URI that points to a specific watch next program.

java-static Boolean

Returns true, if uri is a channel URI.

java-static Boolean

Returns true, if uri is a channel URI for a pass-through input.

java-static Boolean

Returns true, if uri is a channel URI for a tuner input.

java-static Boolean

Returns true, if uri is a program URI.

java-static Boolean

Returns true, if uri is a recorded program URI.

java-static Unit
requestChannelBrowsable(context: Context!, channelId: Long)

Requests to make a channel browsable.

Constants

ACTION_INITIALIZE_PROGRAMS

Added in 1.1.0-alpha02
const val ACTION_INITIALIZE_PROGRAMS = "android.media.tv.action.INITIALIZE_PROGRAMS": String!

Broadcast Action: sent to the target TV input after it is first installed to notify the input to initialize its channels and programs to the system content provider.

Note that this intent is sent only on devices with FEATURE_LEANBACK enabled. Besides that, in order to receive this intent, the target TV input must:

  • Declare a broadcast receiver for this intent in its AndroidManifest.xml.
  • Declare appropriate permissions to write channel and program data in its AndroidManifest.xml.

ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT

Added in 1.1.0-alpha02
const val ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT = "android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT": String!

Broadcast Action: sent by the system to tell the target TV input that one of its existing preview programs is added to the watch next programs table by user.

The intent must contain the following bundle parameters:

ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED

Added in 1.1.0-alpha02
const val ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED": String!

Broadcast Action: sent by the system to tell the target TV input that one of its preview program's browsable state is disabled, i.e., it will no longer be shown to users, which, for example, might be a result of users' interaction with UI. The input is expected to delete the preview program from the content provider.

The intent must contain the following bundle parameter:

ACTION_REQUEST_CHANNEL_BROWSABLE

Added in 1.1.0-alpha02
const val ACTION_REQUEST_CHANNEL_BROWSABLE = "android.media.tv.action.REQUEST_CHANNEL_BROWSABLE": String!

Activity Action: sent by an application telling the system to make the given channel browsable with user interaction. The system may show UI to ask user to approve the channel. This is only relevant to channels with TYPE_PREVIEW type. Use startActivityForResult to get the result of the request.

The intent must contain the following bundle parameters:

ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED

Added in 1.1.0-alpha02
const val ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED": String!

Broadcast Action: sent by the system to tell the target TV input that one of its "watch next" program's browsable state is disabled, i.e., it will no longer be shown to users, which, for example, might be a result of users' interaction with UI. The input is expected to delete the "watch next" program from the content provider.

The intent must contain the following bundle parameter:

AUTHORITY

Added in 1.1.0-alpha02
const val AUTHORITY = "android.media.tv": String!

The authority for the TV provider.

EXTRA_CHANNEL_ID

Added in 1.1.0-alpha02
const val EXTRA_CHANNEL_ID = "android.media.tv.extra.CHANNEL_ID": String!

The key for a bundle parameter containing a channel ID as a long integer

EXTRA_PREVIEW_PROGRAM_ID

Added in 1.1.0-alpha02
const val EXTRA_PREVIEW_PROGRAM_ID = "android.media.tv.extra.PREVIEW_PROGRAM_ID": String!

The key for a bundle parameter containing a program ID as a long integer.

EXTRA_WATCH_NEXT_PROGRAM_ID

Added in 1.1.0-alpha02
const val EXTRA_WATCH_NEXT_PROGRAM_ID = "android.media.tv.extra.WATCH_NEXT_PROGRAM_ID": String!

The key for a bundle parameter containing a watch next program ID as a long integer.

Public functions

buildChannelLogoUri

Added in 1.1.0-alpha02
java-static fun buildChannelLogoUri(channelId: Long): Uri!

Builds a URI that points to a channel logo. See Channels.Logo.

Parameters
channelId: Long

The ID of the channel whose logo is pointed to.

buildChannelLogoUri

Added in 1.1.0-alpha02
java-static fun buildChannelLogoUri(channelUri: Uri!): Uri!

Builds a URI that points to a channel logo. See Channels.Logo.

Parameters
channelUri: Uri!

The URI of the channel whose logo is pointed to.

buildChannelUri

Added in 1.1.0-alpha02
java-static fun buildChannelUri(channelId: Long): Uri!

Builds a URI that points to a specific channel.

Parameters
channelId: Long

The ID of the channel to point to.

buildChannelUriForPassthroughInput

Added in 1.1.0-alpha02
java-static fun buildChannelUriForPassthroughInput(inputId: String!): Uri!

Build a special channel URI intended to be used with pass-through inputs. (e.g. HDMI)

Parameters
inputId: String!

The ID of the pass-through input to build a channels URI for.

buildChannelsUriForInput

Added in 1.1.0-alpha02
java-static fun buildChannelsUriForInput(inputId: String?): Uri!

Builds a URI that points to all channels from a given TV input.

Parameters
inputId: String?

The ID of the TV input to build a channels URI for. If null, builds a URI for all the TV inputs.

buildInputId

Added in 1.1.0-alpha02
java-static fun buildInputId(name: ComponentName!): String!

Builds an ID that uniquely identifies a TV input service.

Parameters
name: ComponentName!

The ComponentName of the TV input service to build ID for.

Returns
String!

the ID for the given TV input service.

buildPreviewProgramUri

Added in 1.1.0-alpha02
java-static fun buildPreviewProgramUri(previewProgramId: Long): Uri!

Builds a URI that points to a specific preview program.

Parameters
previewProgramId: Long

The ID of the preview program to point to.

buildPreviewProgramsUriForChannel

Added in 1.1.0-alpha02
java-static fun buildPreviewProgramsUriForChannel(channelId: Long): Uri!

Builds a URI that points to all preview programs on a given channel.

Parameters
channelId: Long

The ID of the channel to return preview programs for.

buildPreviewProgramsUriForChannel

Added in 1.1.0-alpha02
java-static fun buildPreviewProgramsUriForChannel(channelUri: Uri!): Uri!

Builds a URI that points to all preview programs on a given channel.

Parameters
channelUri: Uri!

The URI of the channel to return preview programs for.

buildProgramUri

Added in 1.1.0-alpha02
java-static fun buildProgramUri(programId: Long): Uri!

Builds a URI that points to a specific program.

Parameters
programId: Long

The ID of the program to point to.

buildProgramsUriForChannel

Added in 1.1.0-alpha02
java-static fun buildProgramsUriForChannel(channelId: Long): Uri!

Builds a URI that points to all programs on a given channel.

Parameters
channelId: Long

The ID of the channel to return programs for.

buildProgramsUriForChannel

Added in 1.1.0-alpha02
java-static fun buildProgramsUriForChannel(channelUri: Uri!): Uri!

Builds a URI that points to all programs on a given channel.

Parameters
channelUri: Uri!

The URI of the channel to return programs for.

buildProgramsUriForChannel

Added in 1.1.0-alpha02
java-static fun buildProgramsUriForChannel(channelId: Long, startTime: Long, endTime: Long): Uri!

Builds a URI that points to programs on a specific channel whose schedules overlap with the given time frame.

Parameters
channelId: Long

The ID of the channel to return programs for.

startTime: Long

The start time used to filter programs. The returned programs should have COLUMN_END_TIME_UTC_MILLIS that is greater than or equal to this time.

endTime: Long

The end time used to filter programs. The returned programs should have COLUMN_START_TIME_UTC_MILLIS that is less than or equal to this time.

buildProgramsUriForChannel

Added in 1.1.0-alpha02
java-static fun buildProgramsUriForChannel(channelUri: Uri!, startTime: Long, endTime: Long): Uri!

Builds a URI that points to programs on a specific channel whose schedules overlap with the given time frame.

Parameters
channelUri: Uri!

The URI of the channel to return programs for.

startTime: Long

The start time used to filter programs. The returned programs should have COLUMN_END_TIME_UTC_MILLIS that is greater than or equal to this time.

endTime: Long

The end time used to filter programs. The returned programs should have COLUMN_START_TIME_UTC_MILLIS that is less than or equal to this time.

buildRecordedProgramUri

Added in 1.1.0-alpha02
java-static fun buildRecordedProgramUri(recordedProgramId: Long): Uri!

Builds a URI that points to a specific recorded program.

Parameters
recordedProgramId: Long

The ID of the recorded program to point to.

buildWatchNextProgramUri

Added in 1.1.0-alpha02
java-static fun buildWatchNextProgramUri(watchNextProgramId: Long): Uri!

Builds a URI that points to a specific watch next program.

Parameters
watchNextProgramId: Long

The ID of the watch next program to point to.

isChannelUri

Added in 1.1.0-alpha02
java-static fun isChannelUri(uri: Uri!): Boolean

Returns true, if uri is a channel URI.

isChannelUriForPassthroughInput

Added in 1.1.0-alpha02
java-static fun isChannelUriForPassthroughInput(uri: Uri!): Boolean

Returns true, if uri is a channel URI for a pass-through input.

isChannelUriForTunerInput

Added in 1.1.0-alpha02
java-static fun isChannelUriForTunerInput(uri: Uri!): Boolean

Returns true, if uri is a channel URI for a tuner input.

isProgramUri

Added in 1.1.0-alpha02
java-static fun isProgramUri(uri: Uri!): Boolean

Returns true, if uri is a program URI.

isRecordedProgramUri

Added in 1.1.0-alpha02
java-static fun isRecordedProgramUri(uri: Uri!): Boolean

Returns true, if uri is a recorded program URI.

requestChannelBrowsable

Added in 1.1.0-alpha02
java-static fun requestChannelBrowsable(context: Context!, channelId: Long): Unit

Requests to make a channel browsable.

Once called, the system will review the request and make the channel browsable based on its policy. The first request from a package is guaranteed to be approved. This is only relevant to channels with TYPE_PREVIEW type.

No-op on devices prior to O.

Parameters
context: Context!

The context for accessing content provider.

channelId: Long

The channel ID to be browsable.

See also
COLUMN_BROWSABLE