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