• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3 Copyright (C) 2014 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<manifest xmlns:android="http://schemas.android.com/apk/res/android"
18    package="com.android.providers.tv" >
19
20    <!-- Allows an application to read (but not write) all the TV listings.
21         This is the only (soon-to-be) public permission among other permissions defined here.
22         TODO(jaeseo): Update when b/21959866 is resolved. -->
23    <permission android:name="android.permission.READ_TV_LISTINGS"
24        android:protectionLevel="dangerous"
25        android:label="@string/permlab_readTvListings"
26        android:description="@string/permdesc_readTvListings" />
27
28    <!-- Allows an application to read (but not write) its own TV channel/program data.
29         @deprecated No longer enforced. -->
30    <permission android:name="com.android.providers.tv.permission.READ_EPG_DATA"
31        android:protectionLevel="normal"
32        android:label="@string/permlab_readEpgData"
33        android:description="@string/permdesc_readEpgData" />
34
35    <!-- Allows an application to write (but not read) its own TV channel/program data.
36         The write permission is still enforced but the application is not required to declare it as
37         the TV player/viewer app grants permission to write through the channel setup flow.
38         @hide -->
39    <permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA"
40        android:protectionLevel="normal"
41        android:label="@string/permlab_writeEpgData"
42        android:description="@string/permdesc_writeEpgData" />
43
44    <!-- Allows an application to read and write all TV channel/program data.
45         @hide -->
46    <permission android:name="com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA"
47        android:protectionLevel="signature|privileged"
48        android:label="@string/permlab_accessAllEpgData"
49        android:description="@string/permdesc_accessAllEpgData" />
50
51    <!-- Allows an application to read and write watched programs data.
52         @hide -->
53    <permission android:name="com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS"
54        android:protectionLevel="signature|privileged"
55        android:label="@string/permlab_accessWatchedPrograms"
56        android:description="@string/permdesc_accessWatchedPrograms" />
57
58    <uses-permission android:name="com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA" />
59    <uses-permission android:name="com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS" />
60    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
61    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
62
63    <application android:label="@string/app_label"
64        android:forceQueryable="true">
65        <provider
66            android:name="TvProvider"
67            android:authorities="android.media.tv"
68            android:exported="true"
69            android:syncable="true"
70            android:writePermission="com.android.providers.tv.permission.WRITE_EPG_DATA">
71        <grant-uri-permission android:pathPattern="/channel" />
72        <grant-uri-permission android:pathPattern="/program" />
73        </provider>
74
75        <service android:name="EpgDataCleanupService" />
76
77        <!-- Handles database upgrades after OTAs -->
78        <receiver android:name="TvProviderUpgradeReceiver"
79            android:exported="true">
80            <!-- This broadcast is sent after the core system has finished
81                 booting, before the home app is launched or BOOT_COMPLETED
82                 is sent. -->
83            <intent-filter>
84                <action android:name="android.intent.action.PRE_BOOT_COMPLETED"/>
85            </intent-filter>
86        </receiver>
87
88        <!-- Deletes transient rows on boot. -->
89        <receiver android:name="BootCompletedReceiver"
90            android:exported="true">
91            <intent-filter>
92                <action android:name="android.intent.action.BOOT_COMPLETED"/>
93            </intent-filter>
94        </receiver>
95
96        <!-- Removes channels and programs when some package is fully removed. -->
97        <receiver android:name="PackageRemovedReceiver"
98            android:exported="true">
99            <intent-filter>
100                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
101                <data android:scheme="package"/>
102            </intent-filter>
103        </receiver>
104
105        <!-- Removes preview programs, watch next programs, and preview channels when some
106             package is disabled. -->
107        <receiver android:name="PackageChangedReceiver"
108            android:exported="true">
109            <intent-filter>
110                <action android:name="android.intent.action.PACKAGE_CHANGED"/>
111                <data android:scheme="package"/>
112            </intent-filter>
113        </receiver>
114    </application>
115</manifest>
116