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