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 18 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 19 package="com.android.tv" xmlns:tools="http://schemas.android.com/tools"> 20 21 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 22 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 23 <uses-permission android:name="android.permission.GLOBAL_SEARCH" tools:ignore="ProtectedPermissions"/> 24 <uses-permission android:name="android.permission.INTERNET" /> 25 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 26 <uses-permission android:name="android.permission.READ_TV_LISTINGS" /> 27 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 28 <uses-permission android:name="android.permission.MODIFY_PARENTAL_CONTROLS" /> 29 <uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" /> 30 <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" /> 31 <uses-permission android:name="com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA" /> 32 <uses-permission android:name="com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS" /> 33 34 <!-- Permissions/feature for USB tuner --> 35 <uses-permission android:name="android.permission.DVB_DEVICE" /> 36 <uses-feature android:name="android.hardware.usb.host" android:required="false" /> 37 38 <!-- Limit only for Android TV --> 39 <uses-feature android:name="android.software.leanback" android:required="true" /> 40 <uses-feature android:name="android.software.live_tv" android:required="true" /> 41 <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> 42 43 44 <!-- Receives input events from the TV app. --> 45 <permission android:name="com.android.tv.permission.RECEIVE_INPUT_EVENT" 46 android:protectionLevel="signatureOrSystem" 47 android:label="@string/permlab_receiveInputEvent" 48 android:description="@string/permdesc_receiveInputEvent" tools:ignore="SignatureOrSystemPermissions"/> 49 <uses-sdk android:targetSdkVersion="23" android:minSdkVersion="23"/> 50 51 <application android:label="@string/app_name" 52 android:name=".TvApplication" 53 android:allowBackup="true" 54 android:icon="@drawable/ic_launcher" 55 android:banner="@drawable/banner" 56 android:supportsRtl="true" 57 android:theme="@style/Theme.TV"> 58 <activity android:name="com.android.tv.TvActivity"> 59 <intent-filter> 60 <action android:name="android.intent.action.MAIN" /> 61 <category android:name="android.intent.category.LAUNCHER" /> 62 <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> 63 </intent-filter> 64 </activity> 65 66 <activity android:name="com.android.tv.MainActivity" 67 android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" 68 android:screenOrientation="landscape" 69 android:launchMode="singleTask" 70 android:resizeableActivity="true" 71 android:supportsPictureInPicture="true" 72 android:theme="@style/Theme.TV.MainActivity"> 73 <intent-filter> 74 <action android:name="android.intent.action.VIEW" /> 75 <category android:name="android.intent.category.DEFAULT" /> 76 <data android:mimeType="vnd.android.cursor.item/channel" /> 77 <data android:mimeType="vnd.android.cursor.dir/channel" /> 78 <data android:mimeType="vnd.android.cursor.item/program" /> 79 <data android:mimeType="vnd.android.cursor.dir/program" /> 80 </intent-filter> 81 <intent-filter> 82 <action android:name="android.media.tv.action.SETUP_INPUTS" /> 83 <category android:name="android.intent.category.DEFAULT" /> 84 </intent-filter> 85 <intent-filter> 86 <action android:name="android.intent.action.SEARCH" /> 87 </intent-filter> 88 <meta-data android:name="supports_leanback" android:value="true" /> 89 <meta-data android:name="android.app.searchable" 90 android:resource="@xml/searchable" /> 91 </activity> 92 93 <activity android:name=".LauncherActivity" 94 android:configChanges="keyboard|keyboardHidden" 95 android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 96 97 <activity android:name=".SetupPassthroughActivity" 98 android:configChanges="keyboard|keyboardHidden" 99 android:theme="@android:style/Theme.Translucent.NoTitleBar"> 100 <intent-filter> 101 <action android:name="com.android.tv.action.LAUNCH_INPUT_SETUP" /> 102 <category android:name="android.intent.category.DEFAULT" /> 103 </intent-filter> 104 </activity> 105 106 <activity android:name=".SelectInputActivity" 107 android:configChanges="keyboard|keyboardHidden" 108 android:launchMode="singleTask" 109 android:theme="@style/Theme.SelectInputActivity" /> 110 111 <activity android:name=".onboarding.OnboardingActivity" 112 android:configChanges="keyboard|keyboardHidden" 113 android:launchMode="singleTop" 114 android:theme="@style/Theme.Setup.GuidedStep" /> 115 116 <activity android:name=".dvr.ui.DvrActivity" 117 android:configChanges="keyboard|keyboardHidden" 118 android:launchMode="singleTask" 119 android:theme="@style/Theme.Leanback.Browse" /> 120 121 <activity android:name=".dvr.DvrPlaybackActivity" 122 android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" 123 android:launchMode="singleTask" 124 android:theme="@style/Theme.Leanback" /> 125 126 <activity android:name=".dvr.ui.DvrDetailsActivity" 127 android:configChanges="keyboard|keyboardHidden" 128 android:theme="@style/Theme.TV.Dvr.Browse.Details" /> 129 130 <activity android:name=".dvr.ui.DvrSeriesSettingsActivity" 131 android:configChanges="keyboard|keyboardHidden" 132 android:theme="@style/Theme.TV.Dvr.Series.Settings.GuidedStep" /> 133 134 <activity android:name=".dvr.ui.DvrSeriesDeletionActivity" 135 android:configChanges="keyboard|keyboardHidden" 136 android:theme="@style/Theme.TV.Dvr.Series.Deletion.GuidedStep" /> 137 138 <activity android:name=".dvr.ui.DvrSeriesScheduledDialogActivity" 139 android:theme="@style/Theme.TV.dialog.HalfSizedDialog"/> 140 141 <activity android:name=".dvr.ui.DvrSchedulesActivity" 142 android:configChanges="keyboard|keyboardHidden" 143 android:theme="@style/Theme.Leanback.Details" /> 144 145 <provider android:name="com.android.tv.search.LocalSearchProvider" 146 android:authorities="com.android.tv.search" 147 android:exported="true" 148 android:enabled="true" tools:ignore="ExportedContentProvider"> 149 <meta-data android:name="SupportedSwitchActionType" android:value="CHANNEL|TVINPUT" /> 150 </provider> 151 152 <service android:name="com.android.tv.recommendation.NotificationService" 153 android:exported="false" /> 154 155 <receiver android:name="com.android.tv.receiver.BootCompletedReceiver"> 156 <intent-filter> 157 <action android:name="android.intent.action.BOOT_COMPLETED" /> 158 </intent-filter> 159 </receiver> 160 <receiver android:name="com.android.tv.receiver.PackageIntentsReceiver"> 161 <intent-filter> 162 <action android:name="android.intent.action.PACKAGE_ADDED" /> 163 <!-- PACKAGE_CHANGED for package enabled/disabled notification --> 164 <action android:name="android.intent.action.PACKAGE_CHANGED" /> 165 <action android:name="android.intent.action.PACKAGE_REMOVED" /> 166 <data android:scheme="package"/> 167 </intent-filter> 168 <intent-filter> 169 <action android:name="android.intent.action.BOOT_COMPLETED" /> 170 </intent-filter> 171 </receiver> 172 <receiver android:name="com.android.tv.receiver.GlobalKeyReceiver"> 173 <intent-filter> 174 <action android:name="android.intent.action.GLOBAL_BUTTON" /> 175 </intent-filter> 176 177 <!-- Not directly related to GlobalKeyReceiver but needed to be able to provide our 178 content rating definitions to the system service. --> 179 <intent-filter> 180 <action android:name="android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS" /> 181 </intent-filter> 182 <meta-data android:name="android.media.tv.metadata.CONTENT_RATING_SYSTEMS" 183 android:resource="@xml/tv_content_rating_systems" /> 184 </receiver> 185 186 <!-- USB tuner components definition --> 187 <activity android:name="com.android.tv.tuner.setup.TunerSetupActivity" 188 android:configChanges="keyboard|keyboardHidden" 189 android:label="@string/bt_app_name" 190 android:launchMode="singleInstance" 191 android:process="com.android.tv.tuner" 192 android:theme="@style/Theme.Setup.GuidedStep" > 193 <intent-filter> 194 <action android:name="android.intent.action.MAIN" /> 195 </intent-filter> 196 </activity> 197 198 <service android:name=".tuner.tvinput.TunerTvInputService" 199 android:enabled="false" 200 android:process="com.android.tv.tuner" 201 android:label="@string/bt_app_name" 202 android:permission="android.permission.BIND_TV_INPUT" > 203 <intent-filter> 204 <action android:name="android.media.tv.TvInputService" /> 205 </intent-filter> 206 <meta-data android:name="android.media.tv.input" 207 android:resource="@xml/ut_tvinputservice" /> 208 </service> 209 <provider android:name=".tuner.TunerPreferenceProvider" 210 android:authorities="com.android.tv.tuner.preferences" 211 android:process="com.android.tv.tuner" 212 android:exported="false" /> 213 <!-- System initial setup component definition --> 214 <activity android:name=".setup.SystemSetupActivity" 215 android:configChanges="keyboard|keyboardHidden" 216 android:label="@string/bt_app_name" 217 android:launchMode="singleInstance" 218 android:theme="@style/Theme.Setup.GuidedStep" > 219 <intent-filter> 220 <action android:name="com.android.tv.action.LAUNCH_SYSTEM_SETUP" /> 221 <category android:name="android.intent.category.DEFAULT" /> 222 </intent-filter> 223 </activity> 224 <!-- TunerInputController should be the same process with MainActivity to check status of MainActivity --> 225 <receiver android:name=".tuner.TunerInputController" 226 android:exported="false"> 227 <intent-filter> 228 <action android:name="android.intent.action.BOOT_COMPLETED" /> 229 <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 230 <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" /> 231 <action android:name="com.android.tv.action.APPLICATION_FIRST_LAUNCHED" /> 232 </intent-filter> 233 </receiver> 234 235 <!-- DVR --> 236 <service android:name=".dvr.DvrRecordingService" android:label="@string/dvr_service_name"/> 237 <receiver android:name=".dvr.DvrStartRecordingReceiver"/> 238 239 <service android:name=".tuner.tvinput.TunerStorageCleanUpService" 240 android:permission="android.permission.BIND_JOB_SERVICE" 241 android:process="com.android.tv.tuner" 242 android:exported="true" /> 243 244 </application> 245 </manifest> 246