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