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="29" /> 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 <!-- providers are listed here to keep them separate from the internal versions --> 85 <provider 86 android:name="com.android.tv.search.LocalSearchProvider" 87 android:authorities="com.android.tv.search" 88 android:enabled="true" 89 android:exported="true" > 90 <meta-data 91 android:name="SupportedSwitchActionType" 92 android:value="CHANNEL|TVINPUT" /> 93 </provider> 94 <provider 95 android:name="com.android.tv.common.CommonPreferenceProvider" 96 android:authorities="com.android.tv.common.preferences" 97 android:exported="false" 98 android:process="com.android.tv.common" /> 99 100 101 102 <receiver 103 android:name="com.android.tv.livetv.receiver.GlobalKeyReceiver" 104 android:exported="true" > 105 <intent-filter> 106 <action android:name="android.intent.action.GLOBAL_BUTTON" /> 107 </intent-filter> 108 109 <!-- 110 Not directly related to GlobalKeyReceiver but needed to be able to provide our 111 content rating definitions to the system service. 112 --> 113 <intent-filter> 114 <action android:name="android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS" /> 115 </intent-filter> 116 117 <meta-data 118 android:name="android.media.tv.metadata.CONTENT_RATING_SYSTEMS" 119 android:resource="@xml/tv_content_rating_systems" /> 120 </receiver> 121 122 <activity 123 android:name="com.android.tv.TvActivity" 124 android:exported="true" 125 android:launchMode="singleTask" > 126 <intent-filter> 127 <action android:name="android.intent.action.MAIN" /> 128 129 <category android:name="android.intent.category.LAUNCHER" /> 130 <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> 131 </intent-filter> 132 </activity> 133 <activity 134 android:name="com.android.tv.MainActivity" 135 android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" 136 android:launchMode="singleTask" 137 android:resizeableActivity="true" 138 android:screenOrientation="landscape" 139 android:supportsPictureInPicture="true" 140 android:theme="@style/Theme.TV.MainActivity" > 141 <intent-filter> 142 <action android:name="android.intent.action.VIEW" /> 143 144 <category android:name="android.intent.category.DEFAULT" /> 145 146 <data android:mimeType="vnd.android.cursor.item/channel" /> 147 <data android:mimeType="vnd.android.cursor.dir/channel" /> 148 <data android:mimeType="vnd.android.cursor.item/program" /> 149 <data android:mimeType="vnd.android.cursor.dir/program" /> 150 </intent-filter> 151 <intent-filter> 152 <action android:name="android.media.tv.action.SETUP_INPUTS" /> 153 154 <category android:name="android.intent.category.DEFAULT" /> 155 </intent-filter> 156 <intent-filter> 157 <action android:name="android.intent.action.SEARCH" /> 158 </intent-filter> 159 160 <meta-data 161 android:name="supports_leanback" 162 android:value="true" /> 163 <meta-data 164 android:name="android.app.searchable" 165 android:resource="@xml/searchable" /> 166 </activity> 167 <activity 168 android:name="com.android.tv.LauncherActivity" 169 android:configChanges="keyboard|keyboardHidden" 170 android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 171 <activity 172 android:name="com.android.tv.SetupPassthroughActivity" 173 android:configChanges="keyboard|keyboardHidden" 174 android:exported="true" 175 android:theme="@android:style/Theme.Translucent.NoTitleBar" > 176 <intent-filter> 177 <action android:name="com.android.tv.action.LAUNCH_INPUT_SETUP" /> 178 179 <category android:name="android.intent.category.DEFAULT" /> 180 </intent-filter> 181 </activity> 182 <activity 183 android:name="com.android.tv.SelectInputActivity" 184 android:configChanges="keyboard|keyboardHidden" 185 android:launchMode="singleTask" 186 android:theme="@style/Theme.SelectInputActivity" /> 187 <activity 188 android:name="com.android.tv.onboarding.OnboardingActivity" 189 android:configChanges="keyboard|keyboardHidden" 190 android:launchMode="singleTop" 191 android:theme="@style/Theme.Setup.GuidedStep" /> 192 <activity 193 android:name="com.android.tv.dvr.ui.browse.DvrBrowseActivity" 194 android:configChanges="keyboard|keyboardHidden" 195 android:launchMode="singleTask" 196 android:theme="@style/Theme.Leanback.Browse" > 197 <intent-filter> 198 <action android:name="android.media.tv.action.VIEW_RECORDING_SCHEDULES" /> 199 200 <category android:name="android.intent.category.DEFAULT" /> 201 </intent-filter> 202 <intent-filter> 203 <action android:name="android.intent.action.VIEW" /> 204 205 <category android:name="android.intent.category.DEFAULT" /> 206 207 <data android:mimeType="vnd.android.cursor.dir/recorded_program" /> 208 </intent-filter> 209 </activity> 210 <activity 211 android:name="com.android.tv.dvr.ui.playback.DvrPlaybackActivity" 212 android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" 213 android:launchMode="singleTask" 214 android:theme="@style/Theme.Leanback" > 215 <intent-filter> 216 <action android:name="android.intent.action.VIEW" /> 217 218 <category android:name="android.intent.category.DEFAULT" /> 219 220 <data android:mimeType="vnd.android.cursor.item/recorded_program" /> 221 </intent-filter> 222 </activity> 223 <activity 224 android:name="com.android.tv.ui.DetailsActivity" 225 android:configChanges="keyboard|keyboardHidden" 226 android:exported="true" 227 android:theme="@style/Theme.TV.Dvr.Browse.Details" /> 228 <activity 229 android:name="com.android.tv.dvr.ui.DvrRecordingSettingsActivity" 230 android:configChanges="keyboard|keyboardHidden" 231 android:exported="false" 232 android:theme="@style/Theme.TV.Dvr.Series.Settings.GuidedStep" /> 233 <activity 234 android:name="com.android.tv.dvr.ui.DvrSeriesSettingsActivity" 235 android:configChanges="keyboard|keyboardHidden" 236 android:theme="@style/Theme.TV.Dvr.Series.Settings.GuidedStep" /> 237 <activity 238 android:name="com.android.tv.dvr.ui.DvrSeriesDeletionActivity" 239 android:configChanges="keyboard|keyboardHidden" 240 android:theme="@style/Theme.TV.Dvr.Series.Deletion.GuidedStep" /> 241 <activity 242 android:name="com.android.tv.dvr.ui.DvrSeriesScheduledDialogActivity" 243 android:theme="@style/Theme.TV.dialog.HalfSizedDialog" /> 244 <activity 245 android:name="com.android.tv.dvr.ui.list.DvrSchedulesActivity" 246 android:configChanges="keyboard|keyboardHidden" 247 android:theme="@style/Theme.Leanback.Details" /> 248 <activity 249 android:name="com.android.tv.dvr.ui.list.DvrHistoryActivity" 250 android:configChanges="keyboard|keyboardHidden" 251 android:exported="false" 252 android:theme="@style/Theme.Leanback.Details" /> 253 254 <service 255 android:name="com.android.tv.recommendation.NotificationService" 256 android:exported="false" /> 257 <service 258 android:name="com.android.tv.recommendation.ChannelPreviewUpdater$ChannelPreviewUpdateService" 259 android:permission="android.permission.BIND_JOB_SERVICE" /> 260 261 <receiver 262 android:name="com.android.tv.receiver.BootCompletedReceiver" 263 android:exported="true" > 264 <intent-filter> 265 <action android:name="android.intent.action.BOOT_COMPLETED" /> 266 </intent-filter> 267 </receiver> 268 <receiver 269 android:name="com.android.tv.receiver.PackageIntentsReceiver" 270 android:exported="true" > 271 <intent-filter> 272 <action android:name="android.intent.action.PACKAGE_ADDED" /> 273 <!-- PACKAGE_CHANGED for package enabled/disabled notification --> 274 <action android:name="android.intent.action.PACKAGE_CHANGED" /> 275 <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" /> 276 <action android:name="android.intent.action.PACKAGE_REMOVED" /> 277 278 <data android:scheme="package" /> 279 </intent-filter> 280 <intent-filter> 281 <action android:name="android.intent.action.BOOT_COMPLETED" /> 282 </intent-filter> 283 </receiver> <!-- System initial setup component definition --> 284 <activity 285 android:name="com.android.tv.setup.SystemSetupActivity" 286 android:configChanges="keyboard|keyboardHidden" 287 android:exported="true" 288 android:label="@string/app_name" 289 android:launchMode="singleInstance" 290 android:theme="@style/Theme.Setup.GuidedStep" > 291 <intent-filter> 292 <action android:name="com.android.tv.action.LAUNCH_SYSTEM_SETUP" /> 293 294 <category android:name="android.intent.category.DEFAULT" /> 295 </intent-filter> 296 </activity> <!-- DVR --> 297 <service 298 android:name="com.android.tv.dvr.recorder.DvrRecordingService" 299 android:label="@string/dvr_service_name" /> 300 301 <receiver 302 android:name="com.android.tv.dvr.recorder.DvrStartRecordingReceiver" 303 android:exported="false" /> 304 305 <service 306 android:name="com.android.tv.data.epg.EpgFetchService" 307 android:permission="android.permission.BIND_JOB_SERVICE" /> 308 </application> 309 310</manifest>