1## 3.12\. TV Input Framework 2 3The [Android Television Input Framework (TIF)]( 4http://source.android.com/devices/tv/index.html) simplifies the delivery of live 5content to Android Television devices. TIF provides a standard API to create 6input modules that control Android Television devices. 7 8If device implementations support TIF, they: 9 10* [C-1-1] MUST declare the platform feature `android.software.live_tv`. 11* [C-1-2] MUST preload a TV application (TV App) and meet all requirements 12 described in [section 3.12.1](#3_12_tv-input-framework). 13 14### 3.12.1\. TV App 15 16If device implementations support TIF: 17 18* [C-1-1] The TV App MUST provide facilities to install and use [TV Channels]( 19http://developer.android.com/reference/android/media/tv/TvContract.Channels.html) 20and meet the following requirements. 21 22The TV app that is required for Android device implementations declaring the 23`android.software.live_tv` feature flag, MUST meet the following requirements: 24 25* Device implementations SHOULD allow third-party TIF-based inputs 26 ([third-party inputs]( 27 https://source.android.com/devices/tv/index.html#third-party_input_example)) 28 to be installed and managed. 29* Device implementations MAY provide visual separation between pre-installed 30 [TIF-based inputs]( 31 https://source.android.com/devices/tv/index.html#tv_inputs) 32 (installed inputs) and third-party inputs. 33* Device implementations SHOULD NOT display the third-party inputs more than a 34 single navigation action away from the TV App (i.e. expanding a list of 35 third-party inputs from the TV App). 36 37The Android Open Source Project provides an implementation of the TV App that 38meets the above requirements. 39 40#### 3.12.1.1\. Electronic Program Guide 41 42If device implementations support TIF, they: 43 44* [C-1-1] MUST show an informational and 45interactive overlay, which MUST include an electronic program guide (EPG) 46generated from the values in the [TvContract.Programs]( 47https://developer.android.com/reference/android/media/tv/TvContract.Programs.html) 48fields. 49* [C-1-2] On channel change, device implementations MUST display EPG data for 50 the currently playing program. 51* [SR] The EPG is STRONGLY RECOMMENDED to display installed inputs and 52 third-party inputs with equal prominence. The EPG SHOULD NOT display the 53 third-party inputs more than a single navigation action away from the 54 installed inputs on the EPG. 55* The EPG SHOULD display information from all installed inputs and third-party 56 inputs. 57* The EPG MAY provide visual separation between the installed inputs and 58 third-party inputs. 59 60#### 3.12.1.2\. Navigation 61 62If device implementations support TIF, they: 63 64* [C-1-1] MUST allow navigation for the following functions via 65the D-pad, Back, and Home keys on the Android Television device’s input 66device(s) (i.e. remote control, remote control application, or game controller): 67 68 * Changing TV channels 69 * Opening EPG 70 * Configuring and tuning to third-party TIF-based inputs (if those inputs are supported) 71 * Opening Settings menu 72 73* SHOULD pass key events to HDMI inputs through CEC. 74 75#### 3.12.1.3\. TV input app linking 76 77If device implementations support TIF: 78 79* [C-1-1] Android Television device implementations MUST support 80[TV input app linking]( 81http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI), 82which allows all inputs to provide activity links from the current activity to 83another activity (i.e. a link from live programming to related content). The TV 84App SHOULD show TV input app linking when it is provided. 85 86#### 3.12.1.4\. Time shifting 87 88If device implementations support TIF, they: 89 90* [SR] STRONGLY RECOMMENDED to support time shifting, which allows the user 91to pause and resume live content. 92* SHOULD provide the user a way to pause and resume the currently playing 93program, if time shifting for that program [is available]( 94https://developer.android.com/reference/android/media/tv/TvInputManager.html#TIME_SHIFT_STATUS_AVAILABLE). 95 96#### 3.12.1.5\. TV recording 97 98If device implementations support TIF, they: 99 100* [SR] STRONGLY RECOMMENDED to support TV recording. 101* SHOULD provide a user interface to play recorded 102programs. 103* If the TV input supports recording and the recording of a program is not 104[prohibited]( 105https://developer.android.com/reference/android/media/tv/TvContract.Programs.html#COLUMN_RECORDING_PROHIBITED), 106the EPG MAY provide a way to [record a program]( 107https://developer.android.com/reference/android/media/tv/TvInputInfo.html#canRecord%28%29). 108