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