• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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    <protected-broadcast android:name="com.android.server.telecom.MESSAGE_SENT" />
25
26
27    <!-- Prevents the activity manager from delaying any activity-start
28         requests by this package, including requests immediately after
29         the user presses "home". -->
30    <uses-permission android:name="android.permission.BIND_CONNECTION_SERVICE" />
31    <uses-permission android:name="android.permission.BIND_INCALL_SERVICE" />
32    <uses-permission android:name="android.permission.BLUETOOTH" />
33    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
34    <uses-permission android:name="android.permission.BROADCAST_CALLLOG_INFO" />
35    <uses-permission android:name="android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION" />
36    <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
37    <uses-permission android:name="android.permission.HANDLE_CALL_INTENT" />
38    <uses-permission android:name="android.permission.HANDLE_CAR_MODE_CHANGES" />
39    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
40    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
41    <uses-permission android:name="android.permission.MANAGE_USERS" />
42    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
43    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
44    <!-- Required to determine source of ongoing audio recordings. -->
45    <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" />
46    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
47    <uses-permission android:name="android.permission.READ_CALL_LOG" />
48    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
49    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
50    <uses-permission android:name="android.permission.SEND_SMS" />
51    <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
52    <uses-permission android:name="android.permission.VIBRATE" />
53    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
54    <uses-permission android:name="android.permission.WAKE_LOCK" />
55    <uses-permission android:name="android.permission.READ_BLOCKED_NUMBERS" />
56    <uses-permission android:name="android.permission.WRITE_BLOCKED_NUMBERS" />
57    <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
58
59    <permission
60            android:name="android.permission.BROADCAST_CALLLOG_INFO"
61            android:label="Broadcast the call type/duration information"
62            android:protectionLevel="signature|system"/>
63
64    <permission
65            android:name="android.permission.PROCESS_CALLLOG_INFO"
66            android:label="Register to handle the broadcasted call type/duration information"
67            android:protectionLevel="signature|system"/>
68
69    <permission
70            android:name="android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION"
71            android:label="Broadcast phone account registration"
72            android:protectionLevel="signature|system"/>
73
74    <permission
75            android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION"
76            android:label="Process phone account registration"
77            android:protectionLevel="signature|system"/>
78
79    <permission
80            android:name="android.permission.HANDLE_CALL_INTENT"
81            android:label="Protects handling the call intent via the TelecomManager API."
82            android:protectionLevel="signature|system"/>
83
84    <application android:label="@string/telecommAppLabel"
85            android:icon="@mipmap/ic_launcher_phone"
86            android:allowBackup="false"
87            android:supportsRtl="true"
88            android:process="system"
89            android:usesCleartextTraffic="false"
90            android:defaultToDeviceProtectedStorage="true"
91            android:directBootAware="true">
92
93        <!-- CALL vs CALL_PRIVILEGED vs CALL_EMERGENCY
94             We have three different intents through which a call can be initiated each with its
95             own behavior.
96             1) CALL - Expected from any third party app with CALL_PHONE permission. Through this
97             intent, an app can call any number except emergency numbers.
98             2) CALL_PRIVILEGED - Expected from the dialer app and requires CALL_PRIVILEGED
99             permission, which is only held by the system dialer and the emergency dialer at the
100             time of this writing. Through this intent, an app can call any number including
101             emergency numbers.
102             3) CALL_EMERGENCY - Expected from the emergency dialer app and requires CALL_PRIVILEGED
103             permission. Through this intent, an app can call *only* emergency numbers. -->
104
105        <!-- Activity that displays UI for managing blocked numbers. -->
106        <activity android:name=".settings.BlockedNumbersActivity"
107                  android:label="@string/blocked_numbers"
108                  android:configChanges="orientation|screenSize|keyboardHidden"
109                  android:theme="@style/Theme.Telecom.BlockedNumbers"
110                  android:process=":ui"
111                  android:exported="true">
112            <intent-filter>
113                <action android:name="android.telecom.action.MANAGE_BLOCKED_NUMBERS" />
114                <category android:name="android.intent.category.DEFAULT" />
115            </intent-filter>
116        </activity>
117
118        <activity android:name=".settings.CallBlockDisabledActivity"
119                android:configChanges="keyboardHidden|orientation|screenSize"
120                android:excludeFromRecents="true"
121                android:launchMode="singleInstance"
122                android:theme="@style/Theme.Telecomm.Transparent"
123                android:process=":ui">
124        </activity>
125
126        <!-- Activity that starts the outgoing call process by listening to CALL intent which
127             contain contact information in the intent's data. CallActivity handles any data
128             URL with the schemes "tel", "sip", and "voicemail". It also handles URLs linked to
129             contacts provider entries. Any data not fitting the schema described is ignored. -->
130        <activity android:name=".components.UserCallActivity"
131                android:label="@string/userCallActivityLabel"
132                android:theme="@style/Theme.Telecomm.Transparent"
133                android:permission="android.permission.CALL_PHONE"
134                android:excludeFromRecents="true"
135                android:process=":ui">
136            <!-- CALL action intent filters for the various ways of initiating an outgoing call. -->
137            <intent-filter>
138                <action android:name="android.intent.action.CALL" />
139                <category android:name="android.intent.category.DEFAULT" />
140                <data android:scheme="tel" />
141            </intent-filter>
142            <!-- Specify an icon for SIP calls so that quick contacts widget shows a special SIP
143                 icon for calls to SIP addresses. -->
144            <intent-filter android:icon="@drawable/ic_launcher_sip_call">
145                <action android:name="android.intent.action.CALL" />
146                <category android:name="android.intent.category.DEFAULT" />
147                <data android:scheme="sip" />
148            </intent-filter>
149            <intent-filter>
150                <action android:name="android.intent.action.CALL" />
151                <category android:name="android.intent.category.DEFAULT" />
152                <data android:scheme="voicemail" />
153            </intent-filter>
154            <!-- Omit default category below so that all Intents sent to this filter must be
155                 explicit. -->
156            <intent-filter>
157                <action android:name="android.intent.action.CALL" />
158                <data android:mimeType="vnd.android.cursor.item/phone" />
159                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
160                <data android:mimeType="vnd.android.cursor.item/person" />
161            </intent-filter>
162        </activity>
163
164        <!-- Works like CallActivity with CALL_PRIVILEGED instead of CALL intent.
165             CALL_PRIVILEGED allows calls to emergency numbers unlike CALL which disallows it.
166             Intent-sender must have the CALL_PRIVILEGED permission or the broadcast will not be
167             processed. High priority of 1000 is used in all intent filters to prevent anything but
168             the system from processing this intent (b/8871505). -->
169        <activity-alias android:name="PrivilegedCallActivity"
170                android:targetActivity=".components.UserCallActivity"
171                android:permission="android.permission.CALL_PRIVILEGED"
172                android:process=":ui">
173            <intent-filter android:priority="1000">
174                <action android:name="android.intent.action.CALL_PRIVILEGED" />
175                <category android:name="android.intent.category.DEFAULT" />
176                <data android:scheme="tel" />
177            </intent-filter>
178            <intent-filter android:priority="1000"
179                    android:icon="@drawable/ic_launcher_sip_call">
180                <action android:name="android.intent.action.CALL_PRIVILEGED" />
181                <category android:name="android.intent.category.DEFAULT" />
182                <data android:scheme="sip" />
183            </intent-filter>
184            <intent-filter android:priority="1000">
185                <action android:name="android.intent.action.CALL_PRIVILEGED" />
186                <category android:name="android.intent.category.DEFAULT" />
187                <data android:scheme="voicemail" />
188            </intent-filter>
189            <intent-filter android:priority="1000">
190                <action android:name="android.intent.action.CALL_PRIVILEGED" />
191                <data android:mimeType="vnd.android.cursor.item/phone" />
192                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
193                <data android:mimeType="vnd.android.cursor.item/person" />
194            </intent-filter>
195        </activity-alias>
196
197        <!-- Works like CallActivity with CALL_EMERGENCY instead of CALL intent.
198             CALL_EMERGENCY allows calls *only* to emergency numbers. Intent-sender must have the
199             CALL_PRIVILEGED permission or the broadcast will not be processed. High priority of
200             1000 is used in all intent filters to prevent anything but the system from processing
201             this intent (b/8871505). -->
202        <!-- TODO: Is there really a notion of an emergency SIP number? If not, can
203             that scheme be removed from this activity? -->
204        <activity-alias android:name="EmergencyCallActivity"
205                android:targetActivity=".components.UserCallActivity"
206                android:permission="android.permission.CALL_PRIVILEGED"
207                android:process=":ui">
208            <intent-filter android:priority="1000">
209                <action android:name="android.intent.action.CALL_EMERGENCY" />
210                <category android:name="android.intent.category.DEFAULT" />
211                <data android:scheme="tel" />
212            </intent-filter>
213            <intent-filter android:priority="1000"
214                    android:icon="@drawable/ic_launcher_sip_call">
215                <action android:name="android.intent.action.CALL_EMERGENCY" />
216                <category android:name="android.intent.category.DEFAULT" />
217                <data android:scheme="sip" />
218            </intent-filter>
219            <intent-filter android:priority="1000">
220                <action android:name="android.intent.action.CALL_EMERGENCY" />
221                <category android:name="android.intent.category.DEFAULT" />
222                <data android:scheme="voicemail" />
223            </intent-filter>
224            <intent-filter android:priority="1000">
225                <action android:name="android.intent.action.CALL_EMERGENCY" />
226                <data android:mimeType="vnd.android.cursor.item/phone" />
227                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
228                <data android:mimeType="vnd.android.cursor.item/person" />
229            </intent-filter>
230        </activity-alias>
231
232        <receiver android:name=".components.TelecomBroadcastReceiver" android:exported="false"
233                android:process="system">
234            <intent-filter>
235                <action android:name="com.android.server.telecom.ACTION_CLEAR_MISSED_CALLS" />
236                <action android:name="com.android.server.telecom.ACTION_CALL_BACK_FROM_NOTIFICATION" />
237                <action android:name="com.android.server.telecom.ACTION_SEND_SMS_FROM_NOTIFICATION" />
238                <action android:name="com.android.server.telecom.ACTION_ANSWER_FROM_NOTIFICATION" />
239                <action android:name="com.android.server.telecom.ACTION_REJECT_FROM_NOTIFICATION" />
240                <action android:name="com.android.server.telecom.PROCEED_WITH_CALL" />
241                <action android:name="com.android.server.telecom.CANCEL_CALL" />
242                <action android:name="com.android.server.telecom.PROCEED_WITH_REDIRECTED_CALL" />
243                <action android:name="com.android.server.telecom.CANCEL_REDIRECTED_CALL" />
244            </intent-filter>
245        </receiver>
246
247        <receiver android:name=".components.AppUninstallBroadcastReceiver"
248                android:process="system">
249            <intent-filter>
250                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
251                <data android:scheme="package" />
252            </intent-filter>
253        </receiver>
254
255        <activity android:name=".RespondViaSmsSettings"
256                  android:label="@string/respond_via_sms_setting_title"
257                  android:configChanges="orientation|screenSize|keyboardHidden"
258                  android:theme="@style/Theme.Telecom.DialerSettings"
259                  android:process=":ui">
260            <intent-filter>
261                <action android:name="android.intent.action.MAIN" />
262                <action android:name="android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS" />
263                <category android:name="android.intent.category.DEFAULT" />
264            </intent-filter>
265        </activity>
266
267        <activity android:name=".settings.EnableAccountPreferenceActivity"
268                  android:label="@string/enable_account_preference_title"
269                  android:configChanges="orientation|screenSize|keyboardHidden"
270                  android:theme="@style/Theme.Telecom.DialerSettings"
271                  android:process=":ui">
272            <intent-filter>
273                <action android:name="android.intent.action.MAIN" />
274                <category android:name="android.intent.category.DEFAULT" />
275            </intent-filter>
276        </activity>
277
278        <activity android:name=".components.ErrorDialogActivity"
279                android:configChanges="orientation|screenSize|keyboardHidden"
280                android:excludeFromRecents="true"
281                android:launchMode="singleInstance"
282                android:theme="@style/Theme.Telecomm.Transparent"
283                android:process=":ui">
284        </activity>
285
286        <activity android:name=".ui.ConfirmCallDialogActivity"
287                android:configChanges="orientation|screenSize|keyboardHidden"
288                android:excludeFromRecents="true"
289                android:launchMode="singleInstance"
290                android:theme="@style/Theme.Telecomm.Transparent"
291                android:process=":ui">
292        </activity>
293
294        <activity android:name=".ui.CallRedirectionTimeoutDialogActivity"
295                  android:configChanges="orientation|screenSize|keyboardHidden"
296                  android:excludeFromRecents="true"
297                  android:launchMode="singleInstance"
298                  android:theme="@style/Theme.Telecomm.Transparent"
299                  android:process=":ui">
300        </activity>
301
302        <activity android:name=".ui.TelecomDeveloperMenu"
303                  android:label="@string/developer_title"
304                  android:exported="false"
305                  android:process=":ui" />
306
307        <service android:name=".components.BluetoothPhoneService"
308                android:singleUser="true"
309                android:process="system">
310            <intent-filter>
311                <action android:name="android.bluetooth.IBluetoothHeadsetPhone" />
312            </intent-filter>
313        </service>
314
315        <service android:name=".components.TelecomService"
316                android:singleUser="true"
317                android:process="system">
318            <intent-filter>
319                <action android:name="android.telecom.ITelecomService" />
320            </intent-filter>
321        </service>
322
323    </application>
324</manifest>
325