AndroidManifest.xml revision dd4c040a0909cc25c2686d37ffcd759eef19d483
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2007 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8          http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16
17<manifest xmlns:android="http://schemas.android.com/apk/res/android"
18        xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
19        package="com.android.server.telecom"
20        coreApp="true"
21        android:sharedUserId="android.uid.system">
22
23    <protected-broadcast android:name="android.intent.action.SHOW_MISSED_CALLS_NOTIFICATION" />
24
25    <!-- Prevents the activity manager from delaying any activity-start
26         requests by this package, including requests immediately after
27         the user presses "home". -->
28    <uses-permission android:name="android.permission.BIND_CONNECTION_SERVICE" />
29    <uses-permission android:name="android.permission.BIND_INCALL_SERVICE" />
30    <uses-permission android:name="android.permission.BLUETOOTH" />
31    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
32    <uses-permission android:name="android.permission.BROADCAST_CALLLOG_INFO" />
33    <uses-permission android:name="android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION" />
34    <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
35    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
36    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
37    <uses-permission android:name="android.permission.MANAGE_USERS" />
38    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
39    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
40    <uses-permission android:name="android.permission.READ_CALL_LOG" />
41    <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
42    <uses-permission android:name="android.permission.VIBRATE" />
43    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
44
45    <permission
46            android:name="android.permission.BROADCAST_CALLLOG_INFO"
47            android:label="Broadcast the call type/duration information"
48            android:protectionLevel="signature|system"/>
49
50    <permission
51            android:name="android.permission.PROCESS_CALLLOG_INFO"
52            android:label="Register to handle the broadcasted call type/duration information"
53            android:protectionLevel="signature|system"/>
54
55    <permission
56            android:name="android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION"
57            android:label="Broadcast phone account registration"
58            android:protectionLevel="signature|system"/>
59
60    <permission
61            android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION"
62            android:label="Process phone account registration"
63            android:protectionLevel="signature|system"/>
64
65    <application android:label="@string/telecommAppLabel"
66            android:icon="@mipmap/ic_launcher_phone"
67            android:allowBackup="false"
68            android:supportsRtl="true"
69            android:process="system"
70            android:usesCleartextTraffic="false"
71            android:forceDeviceEncrypted="true"
72            android:encryptionAware="true">
73
74        <!-- CALL vs CALL_PRIVILEGED vs CALL_EMERGENCY
75             We have three different intents through which a call can be initiated each with its
76             own behavior.
77             1) CALL - Expected from any third party app with CALL_PHONE permission. Through this
78             intent, an app can call any number except emergency numbers.
79             2) CALL_PRIVILEGED - Expected from the dialer app and requires CALL_PRIVILEGED
80             permission, which is only held by the system dialer and the emergency dialer at the
81             time of this writing. Through this intent, an app can call any number including
82             emergency numbers.
83             3) CALL_EMERGENCY - Expected from the emergency dialer app and requires CALL_PRIVILEGED
84             permission. Through this intent, an app can call *only* emergency numbers. -->
85
86        <!-- Activity that starts the outgoing call process by listening to CALL intent which
87             contain contact information in the intent's data. CallActivity handles any data
88             URL with the schemes "tel", "sip", and "voicemail". It also handles URLs linked to
89             contacts provider entries. Any data not fitting the schema described is ignored. -->
90        <activity android:name=".components.UserCallActivity"
91                android:label="@string/userCallActivityLabel"
92                android:theme="@style/Theme.Telecomm.Transparent"
93                android:permission="android.permission.CALL_PHONE"
94                android:excludeFromRecents="true"
95                android:process=":ui">
96            <!-- CALL action intent filters for the various ways of initiating an outgoing call. -->
97            <intent-filter>
98                <action android:name="android.intent.action.CALL" />
99                <category android:name="android.intent.category.DEFAULT" />
100                <data android:scheme="tel" />
101            </intent-filter>
102            <!-- Specify an icon for SIP calls so that quick contacts widget shows a special SIP
103                 icon for calls to SIP addresses. -->
104            <intent-filter android:icon="@drawable/ic_launcher_sip_call">
105                <action android:name="android.intent.action.CALL" />
106                <category android:name="android.intent.category.DEFAULT" />
107                <data android:scheme="sip" />
108            </intent-filter>
109            <intent-filter>
110                <action android:name="android.intent.action.CALL" />
111                <category android:name="android.intent.category.DEFAULT" />
112                <data android:scheme="voicemail" />
113            </intent-filter>
114            <!-- Omit default category below so that all Intents sent to this filter must be
115                 explicit. -->
116            <intent-filter>
117                <action android:name="android.intent.action.CALL" />
118                <data android:mimeType="vnd.android.cursor.item/phone" />
119                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
120                <data android:mimeType="vnd.android.cursor.item/person" />
121            </intent-filter>
122        </activity>
123
124        <!-- Works like CallActivity with CALL_PRIVILEGED instead of CALL intent.
125             CALL_PRIVILEGED allows calls to emergency numbers unlike CALL which disallows it.
126             Intent-sender must have the CALL_PRIVILEGED permission or the broadcast will not be
127             processed. High priority of 1000 is used in all intent filters to prevent anything but
128             the system from processing this intent (b/8871505). -->
129        <activity-alias android:name="PrivilegedCallActivity"
130                android:targetActivity=".components.UserCallActivity"
131                android:permission="android.permission.CALL_PRIVILEGED"
132                android:process=":ui">
133            <intent-filter android:priority="1000">
134                <action android:name="android.intent.action.CALL_PRIVILEGED" />
135                <category android:name="android.intent.category.DEFAULT" />
136                <data android:scheme="tel" />
137            </intent-filter>
138            <intent-filter android:priority="1000"
139                    android:icon="@drawable/ic_launcher_sip_call">
140                <action android:name="android.intent.action.CALL_PRIVILEGED" />
141                <category android:name="android.intent.category.DEFAULT" />
142                <data android:scheme="sip" />
143            </intent-filter>
144            <intent-filter android:priority="1000">
145                <action android:name="android.intent.action.CALL_PRIVILEGED" />
146                <category android:name="android.intent.category.DEFAULT" />
147                <data android:scheme="voicemail" />
148            </intent-filter>
149            <intent-filter android:priority="1000">
150                <action android:name="android.intent.action.CALL_PRIVILEGED" />
151                <data android:mimeType="vnd.android.cursor.item/phone" />
152                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
153                <data android:mimeType="vnd.android.cursor.item/person" />
154            </intent-filter>
155        </activity-alias>
156
157        <!-- Works like CallActivity with CALL_EMERGENCY instead of CALL intent.
158             CALL_EMERGENCY allows calls *only* to emergency numbers. Intent-sender must have the
159             CALL_PRIVILEGED permission or the broadcast will not be processed. High priority of
160             1000 is used in all intent filters to prevent anything but the system from processing
161             this intent (b/8871505). -->
162        <!-- TODO: Is there really a notion of an emergency SIP number? If not, can
163             that scheme be removed from this activity? -->
164        <activity-alias android:name="EmergencyCallActivity"
165                android:targetActivity=".components.UserCallActivity"
166                android:permission="android.permission.CALL_PRIVILEGED"
167                android:process=":ui">
168            <intent-filter android:priority="1000">
169                <action android:name="android.intent.action.CALL_EMERGENCY" />
170                <category android:name="android.intent.category.DEFAULT" />
171                <data android:scheme="tel" />
172            </intent-filter>
173            <intent-filter android:priority="1000"
174                    android:icon="@drawable/ic_launcher_sip_call">
175                <action android:name="android.intent.action.CALL_EMERGENCY" />
176                <category android:name="android.intent.category.DEFAULT" />
177                <data android:scheme="sip" />
178            </intent-filter>
179            <intent-filter android:priority="1000">
180                <action android:name="android.intent.action.CALL_EMERGENCY" />
181                <category android:name="android.intent.category.DEFAULT" />
182                <data android:scheme="voicemail" />
183            </intent-filter>
184            <intent-filter android:priority="1000">
185                <action android:name="android.intent.action.CALL_EMERGENCY" />
186                <data android:mimeType="vnd.android.cursor.item/phone" />
187                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
188                <data android:mimeType="vnd.android.cursor.item/person" />
189            </intent-filter>
190        </activity-alias>
191
192        <receiver android:name=".components.TelecomBroadcastReceiver" android:exported="false"
193                android:process="system">
194            <intent-filter>
195                <action android:name="com.android.server.telecom.ACTION_CLEAR_MISSED_CALLS" />
196                <action android:name="com.android.server.telecom.ACTION_CALL_BACK_FROM_NOTIFICATION" />
197                <action android:name="com.android.server.telecom.ACTION_SEND_SMS_FROM_NOTIFICATION" />
198            </intent-filter>
199        </receiver>
200
201        <receiver android:name=".components.PhoneAccountBroadcastReceiver"
202                android:process="system">
203            <intent-filter>
204                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
205                <data android:scheme="package" />
206            </intent-filter>
207        </receiver>
208
209        <activity android:name=".RespondViaSmsSettings"
210                  android:label="@string/respond_via_sms_setting_title"
211                  android:configChanges="orientation|screenSize|keyboardHidden"
212                  android:theme="@style/Theme.Telecom.DialerSettings"
213                  android:process=":ui">
214            <intent-filter>
215                <action android:name="android.intent.action.MAIN" />
216                <action android:name="android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS" />
217                <category android:name="android.intent.category.DEFAULT" />
218            </intent-filter>
219        </activity>
220
221        <activity android:name=".settings.EnableAccountPreferenceActivity"
222                  android:label="@string/enable_account_preference_title"
223                  android:configChanges="orientation|screenSize|keyboardHidden"
224                  android:theme="@style/Theme.Telecom.DialerSettings"
225                  android:process=":ui">
226            <intent-filter>
227                <action android:name="android.intent.action.MAIN" />
228                <category android:name="android.intent.category.DEFAULT" />
229            </intent-filter>
230        </activity>
231
232        <activity android:name=".components.ErrorDialogActivity"
233                android:configChanges="orientation|screenSize|keyboardHidden"
234                android:excludeFromRecents="true"
235                android:launchMode="singleInstance"
236                android:theme="@style/Theme.Telecomm.Transparent"
237                android:process=":ui">
238        </activity>
239
240        <activity android:name=".components.ChangeDefaultDialerDialog"
241                  android:label="@string/change_default_dialer_dialog_title"
242                  android:excludeFromRecents="true"
243                  android:theme="@*android:style/Theme.Material.Light.Dialog.Alert"
244                  android:priority="1000"
245                  android:process=":ui" >
246            <intent-filter>
247                <action android:name="android.telecom.action.CHANGE_DEFAULT_DIALER" />
248                <category android:name="android.intent.category.DEFAULT" />
249            </intent-filter>
250        </activity>
251
252        <receiver android:name=".components.PrimaryCallReceiver"
253                android:exported="true"
254                android:permission="android.permission.MODIFY_PHONE_STATE"
255                android:process="system">
256        </receiver>
257
258        <service android:name=".components.BluetoothPhoneService"
259                android:singleUser="true"
260                android:process="system">
261            <intent-filter>
262                <action android:name="android.bluetooth.IBluetoothHeadsetPhone" />
263            </intent-filter>
264        </service>
265
266        <service android:name=".components.TelecomService"
267                android:singleUser="true"
268                android:process="system">
269            <intent-filter>
270                <action android:name="android.telecom.ITelecomService" />
271            </intent-filter>
272        </service>
273
274    </application>
275</manifest>
276