Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/media/tv/TvContract.Programs#nestedclasses) \| [Constants](https://developer.android.com/reference/android/media/tv/TvContract.Programs#constants) \| [Inherited Constants](https://developer.android.com/reference/android/media/tv/TvContract.Programs#inhconstants) \| [Fields](https://developer.android.com/reference/android/media/tv/TvContract.Programs#lfields) \| [Inherited Methods](https://developer.android.com/reference/android/media/tv/TvContract.Programs#inhmethods)

# TvContract.Programs

*** ** * ** ***

` public static final class TvContract.Programs `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/android/media/tv/TvContract.BaseTvColumns `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.tv.TvContract.Programs |

<br />

*** ** * ** ***

Column definitions for the TV programs table.

By default, the query results will be sorted by `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_START_TIME_UTC_MILLIS` in ascending order.

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres` Canonical genres for TV programs. |

| ### Constants ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_AUDIO_LANGUAGE` The comma-separated audio languages of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_BROADCAST_GENRE` The comma-separated genre string of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_CANONICAL_GENRE` The comma-separated canonical genre string of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_CHANNEL_ID` The ID of the TV channel that provides this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_CONTENT_RATING` The comma-separated content ratings of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_END_TIME_UTC_MILLIS` The end time of this TV program, in milliseconds since the epoch. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EPISODE_DISPLAY_NUMBER` The episode display number of this TV program for episodic TV shows. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EPISODE_NUMBER` *This constant was deprecated in API level 24. Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EPISODE_DISPLAY_NUMBER` instead.* |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EPISODE_TITLE` The episode title of this TV program for episodic TV shows. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EVENT_ID` The event ID of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_GLOBAL_CONTENT_ID` The global content ID of this TV program, as a URI. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_INTERNAL_PROVIDER_DATA` Internal data used by individual TV input services. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_INTERNAL_PROVIDER_FLAG1` Internal integer flag used by individual TV input services. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_INTERNAL_PROVIDER_FLAG2` Internal integer flag used by individual TV input services. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_INTERNAL_PROVIDER_FLAG3` Internal integer flag used by individual TV input services. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_INTERNAL_PROVIDER_FLAG4` Internal integer flag used by individual TV input services. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_INTERNAL_PROVIDER_ID` The internal ID used by individual TV input services. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_LONG_DESCRIPTION` The detailed, lengthy description of this TV program that is displayed only when the user wants to see more information. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_MULTI_SERIES_ID` The comma-separated series IDs of this TV program for episodic TV shows. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_POSTER_ART_URI` The URI for the poster art of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_RECORDING_PROHIBITED` The flag indicating whether recording of this program is prohibited. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING` The review rating score for this program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING_STYLE` The review rating score style used for `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING`. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SCRAMBLED` The flag indicating whether this TV program is scrambled or not. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEARCHABLE` The flag indicating whether this TV program is searchable or not. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_DISPLAY_NUMBER` The season display number of this TV program for episodic TV shows. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_NUMBER` *This constant was deprecated in API level 24. Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_DISPLAY_NUMBER` instead.* |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_TITLE` The title of the season for this TV program for episodic TV shows. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SERIES_ID` The series ID of this TV program for episodic TV shows. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SHORT_DESCRIPTION` The short description of this TV program that is displayed to the user by default. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SPLIT_ID` The split ID of this TV program for multi-part content, as a URI. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_START_TIME_UTC_MILLIS` The start time of this TV program, in milliseconds since the epoch. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_THUMBNAIL_URI` The URI for the thumbnail of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_TITLE` The title of this TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_VERSION_NUMBER` The version number of this row entry used by TV input services. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_VIDEO_HEIGHT` The height of the video for this TV program, in the unit of pixels. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_VIDEO_WIDTH` The width of the video for this TV program, in the unit of pixels. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#CONTENT_ITEM_TYPE` The MIME type of a single TV program. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#CONTENT_TYPE` The MIME type of a directory of TV programs. |
| `int` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_PERCENTAGE` The review rating style for 0 to 100 point system. |
| `int` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_STARS` The review rating style for five star rating. |
| `int` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_THUMBS_UP_DOWN` The review rating style for thumbs-up and thumbs-down rating. |

### Inherited constants

From interface `https://developer.android.com/reference/android/media/tv/TvContract.BaseTvColumns` `https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/media/tv/TvContract.BaseTvColumns#COLUMN_PACKAGE_NAME`

The name of the package that owns the current row.
From interface `https://developer.android.com/reference/android/provider/BaseColumns` `https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/provider/BaseColumns#_COUNT`

The count of rows in a directory.
`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/provider/BaseColumns#_ID`

The unique ID for a row.

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/net/Uri` | `https://developer.android.com/reference/android/media/tv/TvContract.Programs#CONTENT_URI` The content:// style URI for this table. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### COLUMN_AUDIO_LANGUAGE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_AUDIO_LANGUAGE
```

The comma-separated audio languages of this TV program.

This is used to describe available audio languages included in the program. Use either ISO 639-1 or 639-2/T codes.

Type: TEXT

<br />

Constant Value: "audio_language"

### COLUMN_BROADCAST_GENRE

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_BROADCAST_GENRE
```

The comma-separated genre string of this TV program.

Use the same language appeared in the underlying broadcast standard, if applicable. (For example, one can refer to the genre strings used in Genre Descriptor of ATSC A/65 or Content Descriptor of ETSI EN 300 468, if appropriate.) Otherwise, leave empty. Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#encode(java.lang.String[])` to create a text that can be stored in this column. Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#decode(java.lang.String)` to get the broadcast genre strings from the text stored in the column.

Type: TEXT

<br />

**See also:**

- `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#encode(java.lang.String[])`
- `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#decode(java.lang.String)`

Constant Value: "broadcast_genre"

### COLUMN_CANONICAL_GENRE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_CANONICAL_GENRE
```

The comma-separated canonical genre string of this TV program.

Canonical genres are defined in `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres`. Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#encode(java.lang.String[])` to create a text that can be stored in this column. Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#decode(java.lang.String)` to get the canonical genre strings from the text stored in the column.

Type: TEXT

<br />

**See also:**

- `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres`
- `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#encode(java.lang.String[])`
- `https://developer.android.com/reference/android/media/tv/TvContract.Programs.Genres#decode(java.lang.String)`

Constant Value: "canonical_genre"

### COLUMN_CHANNEL_ID

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_CHANNEL_ID
```

The ID of the TV channel that provides this TV program.

This is a part of the channel URI and matches to `https://developer.android.com/reference/android/provider/BaseColumns#_ID`.

This is a required field.

Type: INTEGER (long)

<br />

Constant Value: "channel_id"

### COLUMN_CONTENT_RATING

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_CONTENT_RATING
```

The comma-separated content ratings of this TV program.

This is used to describe the content rating(s) of this program. Each comma-separated content rating sub-string should be generated by calling `https://developer.android.com/reference/android/media/tv/TvContentRating#flattenToString()`. Note that in most cases the program content is rated by a single rating system, thus resulting in a corresponding single sub-string that does not require comma separation and multiple sub-strings appear only when the program content is rated by two or more content rating systems. If any of those ratings is specified as "blocked rating" in the user's parental control settings, the TV input service should block the current content and wait for the signal that it is okay to unblock.

Type: TEXT

<br />

Constant Value: "content_rating"

### COLUMN_END_TIME_UTC_MILLIS

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_END_TIME_UTC_MILLIS
```

The end time of this TV program, in milliseconds since the epoch.

The value should be equal to or less than `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_START_TIME_UTC_MILLIS` of the next program in the same channel. In practice, end time will usually be the start time of the next program.

Can be empty if this program belongs to a `https://developer.android.com/reference/android/media/tv/TvContract.Channels#TYPE_PREVIEW` channel.

Type: INTEGER (long)

<br />

Constant Value: "end_time_utc_millis"

### COLUMN_EPISODE_DISPLAY_NUMBER

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_EPISODE_DISPLAY_NUMBER
```

The episode display number of this TV program for episodic TV shows.

This is used to indicate the episode number. (e.g. 1, 2 or 3) Note that the value does not necessarily be numeric. (e.g. 12B)

Can be empty.

Type: TEXT

<br />

Constant Value: "episode_display_number"

### COLUMN_EPISODE_NUMBER

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_EPISODE_NUMBER
```

<br />

**This constant was deprecated in API level 24.**   

Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EPISODE_DISPLAY_NUMBER` instead.

The episode number of this TV program for episodic TV shows.

Can be empty.

Type: INTEGER

<br />

Constant Value: "episode_number"

### COLUMN_EPISODE_TITLE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_EPISODE_TITLE
```

The episode title of this TV program for episodic TV shows.

Can be empty.

Type: TEXT

<br />

Constant Value: "episode_title"

### COLUMN_EVENT_ID

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_EVENT_ID
```

The event ID of this TV program.

It is used to identify the current TV program in the same channel, if applicable. Use the same coding for `event_id` in the underlying broadcast standard if it is defined there (e.g. ATSC A/65, ETSI EN 300 468 and ARIB STD-B10).

This is a required field only if the underlying broadcast standard defines the same name field. Otherwise, leave empty.

Type: INTEGER

<br />

Constant Value: "event_id"

### COLUMN_GLOBAL_CONTENT_ID

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_GLOBAL_CONTENT_ID
```

The global content ID of this TV program, as a URI.

A globally unique ID that identifies this TV program, if applicable. Suitable URIs include

- `crid://<CRIDauthority>/<data>` from ETSI TS 102 323
- `globalContentId` from ATSC A/332
- Other broadcast ID provider. ex `http://example.com/tv_program/1234`

Can be empty.

Type: TEXT

<br />

Constant Value: "global_content_id"

### COLUMN_INTERNAL_PROVIDER_DATA

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_INTERNAL_PROVIDER_DATA
```

Internal data used by individual TV input services.

This is internal to the provider that inserted it, and should not be decoded by other apps.

Type: BLOB

<br />

Constant Value: "internal_provider_data"

### COLUMN_INTERNAL_PROVIDER_FLAG1

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_INTERNAL_PROVIDER_FLAG1
```

Internal integer flag used by individual TV input services.

This is internal to the provider that inserted it, and should not be decoded by other apps.

Type: INTEGER

<br />

Constant Value: "internal_provider_flag1"

### COLUMN_INTERNAL_PROVIDER_FLAG2

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_INTERNAL_PROVIDER_FLAG2
```

Internal integer flag used by individual TV input services.

This is internal to the provider that inserted it, and should not be decoded by other apps.

Type: INTEGER

<br />

Constant Value: "internal_provider_flag2"

### COLUMN_INTERNAL_PROVIDER_FLAG3

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_INTERNAL_PROVIDER_FLAG3
```

Internal integer flag used by individual TV input services.

This is internal to the provider that inserted it, and should not be decoded by other apps.

Type: INTEGER

<br />

Constant Value: "internal_provider_flag3"

### COLUMN_INTERNAL_PROVIDER_FLAG4

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_INTERNAL_PROVIDER_FLAG4
```

Internal integer flag used by individual TV input services.

This is internal to the provider that inserted it, and should not be decoded by other apps.

Type: INTEGER

<br />

Constant Value: "internal_provider_flag4"

### COLUMN_INTERNAL_PROVIDER_ID

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_INTERNAL_PROVIDER_ID
```

The internal ID used by individual TV input services.

This is internal to the provider that inserted it, and should not be decoded by other apps.

Can be empty.

Type: TEXT

<br />

Constant Value: "internal_provider_id"

### COLUMN_LONG_DESCRIPTION

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_LONG_DESCRIPTION
```

The detailed, lengthy description of this TV program that is displayed only when the user wants to see more information.

TV input services should leave this field empty if they have no additional details beyond `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SHORT_DESCRIPTION`.

Type: TEXT

<br />

Constant Value: "long_description"

### COLUMN_MULTI_SERIES_ID

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_MULTI_SERIES_ID
```

The comma-separated series IDs of this TV program for episodic TV shows.

This is used to indicate the series IDs. Programs in the same series share a series ID. Use this instead of `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SERIES_ID` if more than one series IDs are assigned to the TV program.

Can be empty.

Type: TEXT

<br />

Constant Value: "multi_series_id"

### COLUMN_POSTER_ART_URI

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_POSTER_ART_URI
```

The URI for the poster art of this TV program.

The data in the column must be a URL, or a URI in one of the following formats:

- content (`https://developer.android.com/reference/android/content/ContentResolver#SCHEME_CONTENT`)
- android.resource (`https://developer.android.com/reference/android/content/ContentResolver#SCHEME_ANDROID_RESOURCE`)
- file (`https://developer.android.com/reference/android/content/ContentResolver#SCHEME_FILE`)

Can be empty.

Type: TEXT

<br />

Constant Value: "poster_art_uri"

### COLUMN_RECORDING_PROHIBITED

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_RECORDING_PROHIBITED
```

The flag indicating whether recording of this program is prohibited.

A value of 1 indicates that recording of this program is prohibited and application will not schedule any recording for this program. A value of 0 indicates that the recording is not prohibited. If not specified, this value is set to 0 (not prohibited) by default.

Type: INTEGER (boolean)

<br />

Constant Value: "recording_prohibited"

### COLUMN_REVIEW_RATING

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_REVIEW_RATING
```

The review rating score for this program.

The format of the value is dependent on `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING_STYLE`. If the style is `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_STARS`, the value should be a real number between 0.0 and 5.0. (e.g. "4.5") If the style is `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_THUMBS_UP_DOWN`, the value should be two integers, one for thumbs-up count and the other for thumbs-down count, with a comma between them. (e.g. "200,40") If the style is `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_PERCENTAGE`, the value shoule be a real number between 0 and 100. (e.g. "99.9")

Type: TEXT

<br />

**See also:**

- `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING_STYLE`

Constant Value: "review_rating"

### COLUMN_REVIEW_RATING_STYLE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_REVIEW_RATING_STYLE
```

The review rating score style used for `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING`.

The value should match one of the followings: `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_STARS`, `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_THUMBS_UP_DOWN`, and `https://developer.android.com/reference/android/media/tv/TvContract.Programs#REVIEW_RATING_STYLE_PERCENTAGE`.

Type: INTEGER

<br />

**See also:**

- `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING`

Constant Value: "review_rating_style"

### COLUMN_SCRAMBLED

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SCRAMBLED
```

The flag indicating whether this TV program is scrambled or not.

Use the same coding for scrambled in the underlying broadcast standard if `free_ca_mode` in EIT is defined there (e.g. ETSI EN 300 468).

Type: INTEGER (boolean)

<br />

Constant Value: "scrambled"

### COLUMN_SEARCHABLE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SEARCHABLE
```

The flag indicating whether this TV program is searchable or not.

The columns of searchable programs can be read by other applications that have proper permission. Care must be taken not to open sensitive data.

A value of 1 indicates that the program is searchable and its columns can be read by other applications, a value of 0 indicates that the program is hidden and its columns can be read only by the package that owns the program and the system. If not specified, this value is set to 1 (searchable) by default.

Type: INTEGER (boolean)

<br />

Constant Value: "searchable"

### COLUMN_SEASON_DISPLAY_NUMBER

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SEASON_DISPLAY_NUMBER
```

The season display number of this TV program for episodic TV shows.

This is used to indicate the season number. (e.g. 1, 2 or 3) Note that the value does not necessarily be numeric. (e.g. 12B)

Can be empty.

Type: TEXT

<br />

Constant Value: "season_display_number"

### COLUMN_SEASON_NUMBER

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SEASON_NUMBER
```

<br />

**This constant was deprecated in API level 24.**   

Use `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_DISPLAY_NUMBER` instead.

The season number of this TV program for episodic TV shows.

Can be empty.

Type: INTEGER

<br />

Constant Value: "season_number"

### COLUMN_SEASON_TITLE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SEASON_TITLE
```

The title of the season for this TV program for episodic TV shows.

This is an optional field supplied only when the season has a special title (e.g. The Final Season). If provided, the applications should display it instead of `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_DISPLAY_NUMBER`, and should display it without alterations. (e.g. for "The Final Season", displayed string should be "The Final Season", not "Season The Final Season"). When displaying multiple programs, the order should be based on `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_DISPLAY_NUMBER`, even when `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_TITLE` exists.

Can be empty.

Type: TEXT

<br />

Constant Value: "season_title"

### COLUMN_SERIES_ID

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SERIES_ID
```

The series ID of this TV program for episodic TV shows.

This is used to indicate the series ID. Programs in the same series share a series ID.

Can be empty.

Type: TEXT

<br />

Constant Value: "series_id"

### COLUMN_SHORT_DESCRIPTION

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SHORT_DESCRIPTION
```

The short description of this TV program that is displayed to the user by default.

It is recommended to limit the length of the descriptions to 256 characters.

Type: TEXT

<br />

Constant Value: "short_description"

### COLUMN_SPLIT_ID

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_SPLIT_ID
```

The split ID of this TV program for multi-part content, as a URI.

A content may consist of multiple programs within the same channel or over several channels. For example, a film might be divided into two parts interrupted by a news in the middle or a longer sport event might be split into several parts over several channels. The split ID is used to identify all the programs in the same multi-part content. Suitable URIs include

- `crid://<CRIDauthority>/<data>#<IMI>` from ETSI TS 102 323

Can be empty.

Type: TEXT

<br />

Constant Value: "split_id"

### COLUMN_START_TIME_UTC_MILLIS

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_START_TIME_UTC_MILLIS
```

The start time of this TV program, in milliseconds since the epoch.

The value should be equal to or larger than `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_END_TIME_UTC_MILLIS` of the previous program in the same channel. In practice, start time will usually be the end time of the previous program.

Can be empty if this program belongs to a `https://developer.android.com/reference/android/media/tv/TvContract.Channels#TYPE_PREVIEW` channel.

Type: INTEGER (long)

<br />

Constant Value: "start_time_utc_millis"

### COLUMN_THUMBNAIL_URI

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_THUMBNAIL_URI
```

The URI for the thumbnail of this TV program.

The system can generate a thumbnail from the poster art if this column is not specified. Thus it is not necessary for TV input services to include a thumbnail if it is just a scaled image of the poster art.

The data in the column must be a URL, or a URI in one of the following formats:

- content (`https://developer.android.com/reference/android/content/ContentResolver#SCHEME_CONTENT`)
- android.resource (`https://developer.android.com/reference/android/content/ContentResolver#SCHEME_ANDROID_RESOURCE`)
- file (`https://developer.android.com/reference/android/content/ContentResolver#SCHEME_FILE`)

Can be empty.

Type: TEXT

<br />

Constant Value: "thumbnail_uri"

### COLUMN_TITLE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_TITLE
```

The title of this TV program.

If this program is an episodic TV show, it is recommended that the title is the series title and its related fields (`https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_TITLE` and/or `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_DISPLAY_NUMBER`, `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_SEASON_DISPLAY_NUMBER`, `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EPISODE_DISPLAY_NUMBER`, and `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_EPISODE_TITLE`) are filled in.

Type: TEXT

<br />

Constant Value: "title"

### COLUMN_VERSION_NUMBER

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_VERSION_NUMBER
```

The version number of this row entry used by TV input services.

This is best used by sync adapters to identify the rows to update. The number can be defined by individual TV input services. One may assign the same value as `version_number` in ETSI EN 300 468 or ATSC A/65, if the data are coming from a TV broadcast.

Type: INTEGER

<br />

Constant Value: "version_number"

### COLUMN_VIDEO_HEIGHT

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_VIDEO_HEIGHT
```

The height of the video for this TV program, in the unit of pixels.

Together with `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_VIDEO_WIDTH` this is used to determine the video resolution of the current TV program. Can be empty if it is not known initially or the program does not convey any video such as the programs from type `https://developer.android.com/reference/android/media/tv/TvContract.Channels#SERVICE_TYPE_AUDIO` channels.

Type: INTEGER

<br />

Constant Value: "video_height"

### COLUMN_VIDEO_WIDTH

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String COLUMN_VIDEO_WIDTH
```

The width of the video for this TV program, in the unit of pixels.

Together with `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_VIDEO_HEIGHT` this is used to determine the video resolution of the current TV program. Can be empty if it is not known initially or the program does not convey any video such as the programs from type `https://developer.android.com/reference/android/media/tv/TvContract.Channels#SERVICE_TYPE_AUDIO` channels.

Type: INTEGER

<br />

Constant Value: "video_width"

### CONTENT_ITEM_TYPE

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String CONTENT_ITEM_TYPE
```

The MIME type of a single TV program.

<br />

Constant Value: "vnd.android.cursor.item/program"

### CONTENT_TYPE

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String CONTENT_TYPE
```

The MIME type of a directory of TV programs.

<br />

Constant Value: "vnd.android.cursor.dir/program"

### REVIEW_RATING_STYLE_PERCENTAGE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int REVIEW_RATING_STYLE_PERCENTAGE
```

The review rating style for 0 to 100 point system.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING_STYLE`

Constant Value: 2 (0x00000002)

### REVIEW_RATING_STYLE_STARS

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int REVIEW_RATING_STYLE_STARS
```

The review rating style for five star rating.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING_STYLE`

Constant Value: 0 (0x00000000)

### REVIEW_RATING_STYLE_THUMBS_UP_DOWN

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int REVIEW_RATING_STYLE_THUMBS_UP_DOWN
```

The review rating style for thumbs-up and thumbs-down rating.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/tv/TvContract.Programs#COLUMN_REVIEW_RATING_STYLE`

Constant Value: 1 (0x00000001)

## Fields

### CONTENT_URI

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Uri CONTENT_URI
```

The content:// style URI for this table.

SQL selection is not supported for `https://developer.android.com/reference/android/content/ContentResolver#query(android.net.Uri,%20java.lang.String[],%20android.os.Bundle,%20android.os.CancellationSignal)`, `https://developer.android.com/reference/android/content/ContentResolver#update(android.net.Uri,%20android.content.ContentValues,%20android.os.Bundle)` and `https://developer.android.com/reference/android/content/ContentResolver#delete(android.net.Uri,%20android.os.Bundle)` operations.

<br />