• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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