• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2006 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    package="com.android.contacts"
19    android:sharedUserId="android.uid.shared">
20
21    <original-package android:name="com.android.contacts" />
22
23    <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
24    <uses-permission android:name="android.permission.READ_CONTACTS" />
25    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
26    <uses-permission android:name="android.permission.READ_CALL_LOG" />
27    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
28    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
29    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
30    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
31    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
32    <uses-permission android:name="android.permission.READ_PROFILE" />
33    <uses-permission android:name="android.permission.WRITE_PROFILE" />
34    <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" />
35    <uses-permission android:name="android.permission.INTERNET" />
36    <uses-permission android:name="android.permission.NFC" />
37    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
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.WAKE_LOCK" />
41    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
42    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
43    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
44    <uses-permission android:name="android.permission.VIBRATE" />
45    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
46    <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" />
47    <uses-permission android:name="com.android.voicemail.permission.READ_WRITE_ALL_VOICEMAIL" />
48    <uses-permission android:name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK" />
49    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
50    <!-- allow broadcasting secret code intents that reboot the phone -->
51    <uses-permission android:name="android.permission.REBOOT" />
52    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
53
54    <application
55        android:name="com.android.contacts.ContactsApplication"
56        android:label="@string/contactsList"
57        android:icon="@mipmap/ic_launcher_contacts"
58        android:taskAffinity="android.task.contacts"
59        android:hardwareAccelerated="true"
60        android:supportsRtl="true"
61    >
62
63        <!-- The main Contacts activity with the contact list, favorites, and groups. -->
64        <activity android:name=".activities.PeopleActivity"
65            android:label="@string/people"
66            android:theme="@style/PeopleTheme"
67            android:uiOptions="splitActionBarWhenNarrow"
68            android:clearTaskOnLaunch="true"
69            android:launchMode="singleTop"
70        >
71            <intent-filter>
72                <action android:name="android.intent.action.MAIN" />
73                <category android:name="android.intent.category.DEFAULT" />
74                <category android:name="android.intent.category.LAUNCHER" />
75                <category android:name="android.intent.category.BROWSABLE" />
76                <category android:name="android.intent.category.APP_CONTACTS" />
77            </intent-filter>
78            <intent-filter>
79                <action android:name="com.android.contacts.action.LIST_DEFAULT" />
80                <category android:name="android.intent.category.DEFAULT" />
81                <category android:name="android.intent.category.TAB" />
82            </intent-filter>
83
84            <intent-filter>
85                <action android:name="com.android.contacts.action.LIST_CONTACTS" />
86                <category android:name="android.intent.category.DEFAULT" />
87                <category android:name="android.intent.category.TAB" />
88            </intent-filter>
89
90            <intent-filter>
91                <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS" />
92                <category android:name="android.intent.category.DEFAULT" />
93                <category android:name="android.intent.category.TAB" />
94            </intent-filter>
95
96            <intent-filter>
97                <action android:name="com.android.contacts.action.LIST_CONTACTS_WITH_PHONES" />
98                <category android:name="android.intent.category.DEFAULT" />
99                <category android:name="android.intent.category.TAB" />
100            </intent-filter>
101
102            <intent-filter android:label="@string/starredList">
103                <action android:name="com.android.contacts.action.LIST_STARRED" />
104                <category android:name="android.intent.category.DEFAULT" />
105                <category android:name="android.intent.category.TAB" />
106            </intent-filter>
107
108            <intent-filter android:label="@string/frequentList">
109                <action android:name="com.android.contacts.action.LIST_FREQUENT" />
110                <category android:name="android.intent.category.DEFAULT" />
111                <category android:name="android.intent.category.TAB" />
112            </intent-filter>
113
114            <intent-filter android:label="@string/strequentList">
115                <action android:name="com.android.contacts.action.LIST_STREQUENT" />
116                <category android:name="android.intent.category.DEFAULT" />
117                <category android:name="android.intent.category.TAB" />
118            </intent-filter>
119
120            <intent-filter>
121                <action android:name="android.intent.action.SEARCH" />
122                <category android:name="android.intent.category.DEFAULT" />
123                <data android:mimeType="vnd.android.cursor.dir/contact" />
124            </intent-filter>
125
126            <intent-filter>
127                <action android:name="android.intent.action.SEARCH" />
128                <category android:name="android.intent.category.DEFAULT" />
129            </intent-filter>
130
131            <intent-filter>
132                <action android:name="com.android.contacts.action.FILTER_CONTACTS" />
133                <category android:name="android.intent.category.DEFAULT" />
134                <data android:mimeType="vnd.android.cursor.dir/contact" />
135            </intent-filter>
136
137            <intent-filter>
138                <action android:name="android.intent.action.VIEW" />
139                <category android:name="android.intent.category.DEFAULT" />
140                <data android:mimeType="vnd.android.cursor.dir/person" />
141                <data android:mimeType="vnd.android.cursor.dir/contact" />
142            </intent-filter>
143
144            <meta-data android:name="android.app.searchable"
145                android:resource="@xml/searchable"
146            />
147        </activity>
148
149        <activity android:name=".activities.ContactSelectionActivity"
150            android:label="@string/contactsList"
151            android:theme="@style/ContactPickerTheme"
152            android:launchMode="singleTop"
153            android:clearTaskOnLaunch="true"
154            android:uiOptions="splitActionBarWhenNarrow"
155            android:windowSoftInputMode="adjustResize">
156            <intent-filter>
157                <action android:name="android.intent.action.INSERT_OR_EDIT" />
158                <category android:name="android.intent.category.DEFAULT" />
159                <data android:mimeType="vnd.android.cursor.item/person" />
160                <data android:mimeType="vnd.android.cursor.item/contact" />
161                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
162            </intent-filter>
163
164            <intent-filter>
165                <action android:name="android.intent.action.PICK" />
166                <category android:name="android.intent.category.DEFAULT" />
167                <data android:mimeType="vnd.android.cursor.dir/contact" />
168                <data android:mimeType="vnd.android.cursor.dir/person" />
169                <data android:mimeType="vnd.android.cursor.dir/phone_v2" />
170                <data android:mimeType="vnd.android.cursor.dir/phone" />
171                <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" />
172                <data android:mimeType="vnd.android.cursor.dir/postal-address" />
173                <data android:mimeType="vnd.android.cursor.dir/email_v2" />
174            </intent-filter>
175
176            <intent-filter>
177                <action android:name="android.intent.action.GET_CONTENT" />
178                <category android:name="android.intent.category.DEFAULT" />
179                <data android:mimeType="vnd.android.cursor.item/contact" />
180                <data android:mimeType="vnd.android.cursor.item/person" />
181                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
182                <data android:mimeType="vnd.android.cursor.item/phone" />
183                <data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
184                <data android:mimeType="vnd.android.cursor.item/postal-address" />
185            </intent-filter>
186        </activity>
187
188        <!-- Backwards compatibility: somebody may have hard coded this activity name -->
189        <activity-alias android:name="ContactsListActivity"
190            android:targetActivity=".activities.PeopleActivity"
191        />
192
193        <!-- Backwards compatibility: "Contacts" from Honeycomb -->
194        <activity-alias android:name=".activities.ContactsFrontDoor"
195            android:targetActivity=".activities.PeopleActivity"
196            android:exported="true"
197        />
198
199        <!-- Backwards compatibility: "Contacts" from Gingerbread and earlier -->
200        <activity-alias android:name="DialtactsContactsEntryActivity"
201            android:targetActivity=".activities.PeopleActivity"
202            android:exported="true"
203        />
204
205        <!-- An activity for joining contacts -->
206        <activity android:name=".activities.JoinContactActivity"
207            android:theme="@style/JoinContactActivityTheme"
208            android:clearTaskOnLaunch="true"
209        >
210            <intent-filter>
211                <action android:name="com.android.contacts.action.JOIN_CONTACT" />
212                <category android:name="android.intent.category.DEFAULT" />
213            </intent-filter>
214        </activity>
215
216        <!-- Used to set options -->
217        <activity
218            android:name=".preference.ContactsPreferenceActivity"
219            android:label="@string/activity_title_settings"
220            android:theme="@style/ContactsPreferencesTheme"
221            android:exported="false"/>
222
223        <!-- Used to filter contacts list by account -->
224        <activity
225            android:name=".common.list.AccountFilterActivity"
226            android:label="@string/activity_title_contacts_filter"
227            android:theme="@style/ContactListFilterTheme" />
228
229        <!-- Used to select display and sync groups -->
230        <activity
231            android:name=".common.list.CustomContactListFilterActivity"
232            android:label="@string/custom_list_filter"
233            android:theme="@style/ContactListFilterTheme" />
234
235        <activity
236            android:name=".activities.ShowOrCreateActivity"
237            android:theme="@android:style/Theme.Translucent.NoTitleBar">
238
239            <intent-filter>
240                <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" />
241                <category android:name="android.intent.category.DEFAULT" />
242                <data android:scheme="mailto" />
243                <data android:scheme="tel" />
244            </intent-filter>
245        </activity>
246
247        <!-- Views the details of a single group -->
248        <activity android:name=".activities.GroupDetailActivity"
249            android:label=""
250            android:theme="@style/DetailActivityTheme"/>
251
252        <!-- Create a new or edit an existing group -->
253        <activity
254            android:name=".activities.GroupEditorActivity"
255            android:theme="@style/EditorActivityTheme"
256            android:windowSoftInputMode="adjustResize" />
257
258        <!-- Used to show QuickContact window over a translucent activity, which is a
259             temporary hack until we add better framework support. -->
260        <activity
261            android:name=".quickcontact.QuickContactActivity"
262            android:theme="@style/Theme.QuickContact"
263            android:launchMode="singleTop"
264            android:excludeFromRecents="true"
265            android:noHistory="true"
266            android:taskAffinity=""
267            android:windowSoftInputMode="stateUnchanged">
268
269            <intent-filter>
270                <action android:name="com.android.contacts.action.QUICK_CONTACT" />
271                <category android:name="android.intent.category.DEFAULT" />
272                <data android:mimeType="vnd.android.cursor.item/contact" />
273                <data android:mimeType="vnd.android.cursor.item/person" />
274            </intent-filter>
275        </activity>
276
277        <receiver
278            android:name=".quickcontact.QuickContactBroadcastReceiver"
279            android:exported="false" />
280
281        <activity-alias android:name="ContactShortcut"
282            android:targetActivity=".activities.ContactSelectionActivity"
283            android:label="@string/shortcutContact"
284            android:icon="@mipmap/ic_launcher_shortcut_contact">
285
286            <intent-filter>
287                <action android:name="android.intent.action.CREATE_SHORTCUT" />
288                <category android:name="android.intent.category.DEFAULT" />
289            </intent-filter>
290
291        </activity-alias>
292
293        <activity-alias android:name="alias.DialShortcut"
294            android:targetActivity=".activities.ContactSelectionActivity"
295            android:label="@string/shortcutDialContact"
296            android:icon="@mipmap/ic_launcher_shortcut_directdial"
297            android:enabled="@*android:bool/config_voice_capable">
298
299            <intent-filter>
300                <action android:name="android.intent.action.CREATE_SHORTCUT" />
301                <category android:name="android.intent.category.DEFAULT" />
302                <category android:name="android.intent.category.CAR_MODE" />
303            </intent-filter>
304
305        </activity-alias>
306
307        <activity-alias android:name="alias.MessageShortcut"
308            android:targetActivity=".activities.ContactSelectionActivity"
309            android:label="@string/shortcutMessageContact"
310            android:icon="@mipmap/ic_launcher_shortcut_directmessage"
311            android:enabled="@*android:bool/config_voice_capable">
312
313            <intent-filter>
314                <action android:name="android.intent.action.CREATE_SHORTCUT" />
315                <category android:name="android.intent.category.DEFAULT" />
316            </intent-filter>
317
318        </activity-alias>
319
320        <!-- Views the details of a single contact -->
321        <activity android:name=".activities.ContactDetailActivity"
322            android:label="@string/viewContactTitle"
323            android:theme="@style/DetailActivityTheme"
324            android:parentActivityName=".activities.PeopleActivity">
325
326            <intent-filter android:label="@string/viewContactDesription">
327                <action android:name="android.intent.action.VIEW" />
328                <category android:name="android.intent.category.DEFAULT" />
329                <data android:mimeType="vnd.android.cursor.item/person" />
330                <data android:mimeType="vnd.android.cursor.item/contact" />
331                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
332            </intent-filter>
333        </activity>
334
335        <!-- Confirm that a single detail will be added to an existing contact -->
336        <activity
337            android:name=".activities.ConfirmAddDetailActivity"
338            android:label="@string/activity_title_confirm_add_detail"
339            android:theme="@style/ConfirmAddDetailDialogTheme"
340            android:windowSoftInputMode="adjustResize"
341            android:exported="false"/>
342
343        <!-- Accounts changed prompt that can appear when creating a new contact. -->
344        <activity
345            android:name=".activities.ContactEditorAccountsChangedActivity"
346            android:theme="@style/ContactEditorAccountsChangedActivityTheme"
347            android:windowSoftInputMode="adjustResize"
348            android:exported="false"/>
349
350        <!-- Create a new or edit an existing contact -->
351        <activity
352            android:name=".activities.ContactEditorActivity"
353            android:theme="@style/EditorActivityTheme"
354            android:windowSoftInputMode="adjustResize">
355
356            <intent-filter android:label="@string/editContactDescription">
357                <action android:name="android.intent.action.EDIT" />
358                <category android:name="android.intent.category.DEFAULT" />
359                <data android:mimeType="vnd.android.cursor.item/person" />
360                <data android:mimeType="vnd.android.cursor.item/contact" />
361                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
362            </intent-filter>
363            <intent-filter android:label="@string/insertContactDescription">
364                <action android:name="android.intent.action.INSERT" />
365                <category android:name="android.intent.category.DEFAULT" />
366                <data android:mimeType="vnd.android.cursor.dir/person" />
367                <data android:mimeType="vnd.android.cursor.dir/contact" />
368                <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
369            </intent-filter>
370        </activity>
371
372        <activity android:name=".common.test.FragmentTestActivity">
373            <intent-filter>
374                <category android:name="android.intent.category.TEST" />
375            </intent-filter>
376        </activity>
377
378        <!-- Stub service used to keep our process alive long enough for
379             background threads to finish their operations. -->
380        <service
381            android:name=".common.util.EmptyService"
382            android:exported="false" />
383
384        <!-- Service to save a contact -->
385        <service
386            android:name=".ContactSaveService"
387            android:exported="false" />
388
389        <!-- Attaches a photo to a contact. Started from external applications -->
390        <activity android:name=".activities.AttachPhotoActivity"
391            android:label="@string/attach_photo_dialog_title"
392            android:taskAffinity="">
393            <intent-filter>
394                <action android:name="android.intent.action.ATTACH_DATA" />
395                <data android:mimeType="image/*" />
396                <category android:name="android.intent.category.DEFAULT" />
397            </intent-filter>
398        </activity>
399
400        <!--
401            Internal photo selection activity.  This activity handles all configuration changes by
402            itself.
403        -->
404        <activity android:name=".activities.PhotoSelectionActivity"
405            android:theme="@style/Theme.PhotoSelector"
406            android:launchMode="singleTop"
407            android:windowSoftInputMode="stateUnchanged"
408            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize"
409            >
410        </activity>
411
412        <!-- vCard related -->
413        <activity android:name=".common.vcard.ImportVCardActivity"
414            android:configChanges="orientation|screenSize|keyboardHidden"
415            android:theme="@style/BackgroundOnlyTheme">
416            <intent-filter>
417                <action android:name="android.intent.action.VIEW" />
418                <data android:mimeType="text/directory" />
419                <data android:mimeType="text/vcard" />
420                <data android:mimeType="text/x-vcard" />
421                <category android:name="android.intent.category.DEFAULT" />
422            </intent-filter>
423        </activity>
424
425        <activity android:name=".common.vcard.NfcImportVCardActivity"
426            android:configChanges="orientation|screenSize|keyboardHidden"
427            android:theme="@style/BackgroundOnlyTheme">
428            <intent-filter>
429                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
430                <data android:mimeType="text/vcard" />
431                <data android:mimeType="text/x-vcard" />
432                <category android:name="android.intent.category.DEFAULT" />
433            </intent-filter>
434        </activity>
435
436        <activity android:name=".common.vcard.CancelActivity"
437            android:theme="@style/BackgroundOnlyTheme" />
438
439        <activity android:name=".common.vcard.SelectAccountActivity"
440            android:theme="@style/BackgroundOnlyTheme" />
441
442        <activity android:name=".common.vcard.ExportVCardActivity"
443            android:theme="@style/BackgroundOnlyTheme" />
444
445        <service
446            android:name=".common.vcard.VCardService"
447            android:exported="false" />
448
449        <!-- Pinned header list demo -->
450        <activity android:name=".widget.PinnedHeaderListDemoActivity">
451            <intent-filter>
452                <action android:name="android.intent.action.MAIN" />
453                <category android:name="android.intent.category.DEFAULT" />
454            </intent-filter>
455        </activity>
456
457        <!-- Intercept Dialer Intents for devices without a phone.
458             This activity should have the same intent filters as the DialtactsActivity,
459             so that its capturing the same events. Omit android.intent.category.LAUNCHER, because
460             we don't want this to show up in the Launcher. The priorities of the intent-filters
461             are set lower, so that the user does not see a disambig dialog -->
462        <activity
463            android:name="com.android.contacts.NonPhoneActivity"
464            android:theme="@style/NonPhoneActivityTheme"
465            >
466            <intent-filter android:priority="-1">
467                <action android:name="android.intent.action.MAIN"/>
468                <category android:name="android.intent.category.DEFAULT"/>
469                <category android:name="android.intent.category.BROWSABLE"/>
470            </intent-filter>
471            <intent-filter android:priority="-1">
472                <action android:name="android.intent.action.VIEW"/>
473                <category android:name="android.intent.category.DEFAULT"/>
474                <category android:name="android.intent.category.BROWSABLE"/>
475                <data android:scheme="tel"/>
476            </intent-filter>
477            <intent-filter android:priority="-1">
478                <action android:name="android.intent.action.VIEW"/>
479                <category android:name="android.intent.category.DEFAULT"/>
480                <category android:name="android.intent.category.BROWSABLE"/>
481                <data android:mimeType="vnd.android.cursor.dir/calls"/>
482            </intent-filter>
483        </activity>
484
485        <!-- Service that is exclusively for the Phone application that sends out a view
486             notification. This service might be removed in future versions of the app.
487
488             This is called explicitly by the phone app via package name and class.
489             (PhoneUtils.sendViewNotificationAsync()).  If this service moves, then phone
490             needs to be changed as well.
491        -->
492        <service android:name=".ViewNotificationService"
493                 android:permission="android.permission.WRITE_CONTACTS"
494                 android:exported="true">
495            <intent-filter>
496                <action android:name="com.android.contacts.VIEW_NOTIFICATION"/>
497                <data android:mimeType="vnd.android.cursor.item/contact"/>
498            </intent-filter>
499        </service>
500
501        <provider
502            android:name="android.support.v4.content.FileProvider"
503            android:authorities="com.android.contacts.files"
504            android:grantUriPermissions="true"
505            android:exported="false">
506            <meta-data
507                android:name="android.support.FILE_PROVIDER_PATHS"
508                android:resource="@xml/file_paths" />
509        </provider>
510
511        <meta-data android:name="android.nfc.disable_beam_default" android:value="true" />
512    </application>
513</manifest>
514