1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3 ~ Copyright (C) 2015 The Android Open Source Project 4 ~ 5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 6 ~ you may not use this file except in compliance with the License. 7 ~ You may obtain a copy of the License at 8 ~ 9 ~ http://www.apache.org/licenses/LICENSE-2.0 10 ~ 11 ~ Unless required by applicable law or agreed to in writing, software 12 ~ distributed under the License is distributed on an "AS IS" BASIS, 13 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ~ See the License for the specific language governing permissions and 15 ~ limitations under the License. 16--> 17<!-- This manifest is for LiveTv --> 18<manifest xmlns:android="http://schemas.android.com/apk/res/android" 19 xmlns:tools="http://schemas.android.com/tools" 20 package="com.android.tv" > 21 22 <uses-sdk 23 android:minSdkVersion="23" 24 android:targetSdkVersion="27" /> 25 26 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 27 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 28 <uses-permission android:name="android.permission.CHANGE_HDMI_CEC_ACTIVE_SOURCE" /> 29 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> 30 <uses-permission android:name="android.permission.HDMI_CEC" /> 31 <uses-permission android:name="android.permission.INTERNET" /> 32 <uses-permission android:name="android.permission.MODIFY_PARENTAL_CONTROLS" /> 33 <uses-permission android:name="android.permission.READ_CONTENT_RATING_SYSTEMS" /> 34 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 35 <uses-permission android:name="android.permission.READ_TV_LISTINGS" /> 36 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 37 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 38 <uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" /> 39 <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" /> 40 <uses-permission android:name="com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA" /> 41 <uses-permission android:name="com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS" /> 42 <!-- Permissions/feature for USB tuner --> 43 <uses-permission android:name="android.permission.DVB_DEVICE" /> 44 45 <uses-feature 46 android:name="android.hardware.usb.host" 47 android:required="false" /> 48 49 <!-- Limit only for Android TV --> 50 <uses-feature 51 android:name="android.software.leanback" 52 android:required="true" /> 53 <uses-feature 54 android:name="android.software.live_tv" 55 android:required="true" /> 56 <uses-feature 57 android:name="android.hardware.touchscreen" 58 android:required="false" /> 59 60 <!-- Receives input events from the TV app. --> 61 <permission 62 android:name="com.android.tv.permission.RECEIVE_INPUT_EVENT" 63 android:description="@string/permdesc_receiveInputEvent" 64 android:label="@string/permlab_receiveInputEvent" 65 android:protectionLevel="signatureOrSystem" /> 66 <!-- Customizes Live TV with customization packages. --> 67 <permission 68 android:name="com.android.tv.permission.CUSTOMIZE_TV_APP" 69 android:description="@string/permdesc_customizeTvApp" 70 android:label="@string/permlab_customizeTvApp" 71 android:protectionLevel="signatureOrSystem" /> 72 73 <application 74 android:name="com.android.tv.app.LiveTvApplication" 75 android:allowBackup="true" 76 android:appComponentFactory="android.support.v4.app.CoreComponentFactory" 77 android:banner="@drawable/live_tv_banner" 78 android:icon="@drawable/ic_tv_app" 79 android:label="@string/app_name" 80 android:supportsRtl="true" 81 android:theme="@style/Theme.TV" 82 tools:replace="android:appComponentFactory"> 83 > 84 85 <!-- providers are listed here to keep them separate from the internal versions --> 86 <provider 87 android:name="com.android.tv.search.LocalSearchProvider" 88 android:authorities="com.android.tv.search" 89 android:enabled="true" 90 android:exported="true" > 91 <meta-data 92 android:name="SupportedSwitchActionType" 93 android:value="CHANNEL|TVINPUT" /> 94 </provider> 95 <provider 96 android:name="com.android.tv.common.CommonPreferenceProvider" 97 android:authorities="com.android.tv.common.preferences" 98 android:exported="false" 99 android:process="com.android.tv.common" /> 100 101 102 103 <receiver 104 android:name="com.android.tv.livetv.receiver.GlobalKeyReceiver" 105 android:exported="true" > 106 <intent-filter> 107 <action android:name="android.intent.action.GLOBAL_BUTTON" /> 108 </intent-filter> 109 110 <!-- 111 Not directly related to GlobalKeyReceiver but needed to be able to provide our 112 content rating definitions to the system service. 113 --> 114 <intent-filter> 115 <action android:name="android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS" /> 116 </intent-filter> 117 118 <meta-data 119 android:name="android.media.tv.metadata.CONTENT_RATING_SYSTEMS" 120 android:resource="@xml/tv_content_rating_systems" /> 121 </receiver> 122 123 <activity 124 android:name="com.android.tv.TvActivity" 125 android:exported="true" 126 android:launchMode="singleTask" > 127 <intent-filter> 128 <action android:name="android.intent.action.MAIN" /> 129 130 <category android:name="android.intent.category.LAUNCHER" /> 131 <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> 132 </intent-filter> 133 </activity> 134 <activity 135 android:name="com.android.tv.MainActivity" 136 android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" 137 android:launchMode="singleTask" 138 android:resizeableActivity="true" 139 android:screenOrientation="landscape" 140 android:supportsPictureInPicture="true" 141 android:theme="@style/Theme.TV.MainActivity" > 142 <intent-filter> 143 <action android:name="android.intent.action.VIEW" /> 144 145 <category android:name="android.intent.category.DEFAULT" /> 146 147 <data android:mimeType="vnd.android.cursor.item/channel" /> 148 <data android:mimeType="vnd.android.cursor.dir/channel" /> 149 <data android:mimeType="vnd.android.cursor.item/program" /> 150 <data android:mimeType="vnd.android.cursor.dir/program" /> 151 </intent-filter> 152 <intent-filter> 153 <action android:name="android.media.tv.action.SETUP_INPUTS" /> 154 155 <category android:name="android.intent.category.DEFAULT" /> 156 </intent-filter> 157 <intent-filter> 158 <action android:name="android.intent.action.SEARCH" /> 159 </intent-filter> 160 161 <meta-data 162 android:name="supports_leanback" 163 android:value="true" /> 164 <meta-data 165 android:name="android.app.searchable" 166 android:resource="@xml/searchable" /> 167 </activity> 168 <activity 169 android:name="com.android.tv.LauncherActivity" 170 android:configChanges="keyboard|keyboardHidden" 171 android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 172 <activity 173 android:name="com.android.tv.SetupPassthroughActivity" 174 android:configChanges="keyboard|keyboardHidden" 175 android:exported="true" 176 android:theme="@android:style/Theme.Translucent.NoTitleBar" > 177 <intent-filter> 178 <action android:name="com.android.tv.action.LAUNCH_INPUT_SETUP" /> 179 180 <category android:name="android.intent.category.DEFAULT" /> 181 </intent-filter> 182 </activity> 183 <activity 184 android:name="com.android.tv.SelectInputActivity" 185 android:configChanges="keyboard|keyboardHidden" 186 android:launchMode="singleTask" 187 android:theme="@style/Theme.SelectInputActivity" /> 188 <activity 189 android:name="com.android.tv.onboarding.OnboardingActivity" 190 android:configChanges="keyboard|keyboardHidden" 191 android:launchMode="singleTop" 192 android:theme="@style/Theme.Setup.GuidedStep" /> 193 <activity 194 android:name="com.android.tv.dvr.ui.browse.DvrBrowseActivity" 195 android:configChanges="keyboard|keyboardHidden" 196 android:launchMode="singleTask" 197 android:theme="@style/Theme.Leanback.Browse" > 198 <intent-filter> 199 <action android:name="android.media.tv.action.VIEW_RECORDING_SCHEDULES" /> 200 201 <category android:name="android.intent.category.DEFAULT" /> 202 </intent-filter> 203 <intent-filter> 204 <action android:name="android.intent.action.VIEW" /> 205 206 <category android:name="android.intent.category.DEFAULT" /> 207 208 <data android:mimeType="vnd.android.cursor.dir/recorded_program" /> 209 </intent-filter> 210 </activity> 211 <activity 212 android:name="com.android.tv.dvr.ui.playback.DvrPlaybackActivity" 213 android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" 214 android:launchMode="singleTask" 215 android:theme="@style/Theme.Leanback" > 216 <intent-filter> 217 <action android:name="android.intent.action.VIEW" /> 218 219 <category android:name="android.intent.category.DEFAULT" /> 220 221 <data android:mimeType="vnd.android.cursor.item/recorded_program" /> 222 </intent-filter> 223 </activity> 224 <activity 225 android:name="com.android.tv.ui.DetailsActivity" 226 android:configChanges="keyboard|keyboardHidden" 227 android:exported="true" 228 android:theme="@style/Theme.TV.Dvr.Browse.Details" /> 229 <activity 230 android:name="com.android.tv.dvr.ui.DvrSeriesSettingsActivity" 231 android:configChanges="keyboard|keyboardHidden" 232 android:theme="@style/Theme.TV.Dvr.Series.Settings.GuidedStep" /> 233 <activity 234 android:name="com.android.tv.dvr.ui.DvrSeriesDeletionActivity" 235 android:configChanges="keyboard|keyboardHidden" 236 android:theme="@style/Theme.TV.Dvr.Series.Deletion.GuidedStep" /> 237 <activity 238 android:name="com.android.tv.dvr.ui.DvrSeriesScheduledDialogActivity" 239 android:theme="@style/Theme.TV.dialog.HalfSizedDialog" /> 240 <activity 241 android:name="com.android.tv.dvr.ui.list.DvrSchedulesActivity" 242 android:configChanges="keyboard|keyboardHidden" 243 android:theme="@style/Theme.Leanback.Details" /> 244 <activity 245 android:name="com.android.tv.dvr.ui.list.DvrHistoryActivity" 246 android:configChanges="keyboard|keyboardHidden" 247 android:exported="false" 248 android:theme="@style/Theme.Leanback.Details" /> 249 250 <service 251 android:name="com.android.tv.recommendation.NotificationService" 252 android:exported="false" /> 253 <service 254 android:name="com.android.tv.recommendation.ChannelPreviewUpdater$ChannelPreviewUpdateService" 255 android:permission="android.permission.BIND_JOB_SERVICE" /> 256 257 <receiver android:name="com.android.tv.receiver.BootCompletedReceiver" > 258 <intent-filter> 259 <action android:name="android.intent.action.BOOT_COMPLETED" /> 260 </intent-filter> 261 </receiver> 262 <receiver android:name="com.android.tv.receiver.PackageIntentsReceiver" > 263 <intent-filter> 264 <action android:name="android.intent.action.PACKAGE_ADDED" /> 265 <!-- PACKAGE_CHANGED for package enabled/disabled notification --> 266 <action android:name="android.intent.action.PACKAGE_CHANGED" /> 267 <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" /> 268 <action android:name="android.intent.action.PACKAGE_REMOVED" /> 269 270 <data android:scheme="package" /> 271 </intent-filter> 272 <intent-filter> 273 <action android:name="android.intent.action.BOOT_COMPLETED" /> 274 </intent-filter> 275 </receiver> <!-- System initial setup component definition --> 276 <activity 277 android:name="com.android.tv.setup.SystemSetupActivity" 278 android:configChanges="keyboard|keyboardHidden" 279 android:exported="true" 280 android:label="@string/app_name" 281 android:launchMode="singleInstance" 282 android:theme="@style/Theme.Setup.GuidedStep" > 283 <intent-filter> 284 <action android:name="com.android.tv.action.LAUNCH_SYSTEM_SETUP" /> 285 286 <category android:name="android.intent.category.DEFAULT" /> 287 </intent-filter> 288 </activity> <!-- DVR --> 289 <service 290 android:name="com.android.tv.dvr.recorder.DvrRecordingService" 291 android:label="@string/dvr_service_name" /> 292 293 <receiver android:name="com.android.tv.dvr.recorder.DvrStartRecordingReceiver" /> 294 295 <service 296 android:name="com.android.tv.data.epg.EpgFetchService" 297 android:permission="android.permission.BIND_JOB_SERVICE" /> 298 </application> 299 300</manifest> 301