• 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
222        <!-- Used to filter contacts list by account -->
223        <activity
224            android:name=".common.list.AccountFilterActivity"
225            android:label="@string/activity_title_contacts_filter"
226            android:theme="@style/ContactListFilterTheme" />
227
228        <!-- Used to select display and sync groups -->
229        <activity
230            android:name=".common.list.CustomContactListFilterActivity"
231            android:label="@string/custom_list_filter"
232            android:theme="@style/ContactListFilterTheme" />
233
234        <activity
235            android:name=".activities.ShowOrCreateActivity"
236            android:theme="@android:style/Theme.Translucent.NoTitleBar">
237
238            <intent-filter>
239                <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" />
240                <category android:name="android.intent.category.DEFAULT" />
241                <data android:scheme="mailto" />
242                <data android:scheme="tel" />
243            </intent-filter>
244        </activity>
245
246        <!-- Views the details of a single group -->
247        <activity android:name=".activities.GroupDetailActivity"
248            android:label=""
249            android:theme="@style/DetailActivityTheme"/>
250
251        <!-- Create a new or edit an existing group -->
252        <activity
253            android:name=".activities.GroupEditorActivity"
254            android:theme="@style/EditorActivityTheme"
255            android:windowSoftInputMode="adjustResize" />
256
257        <!-- Used to show QuickContact window over a translucent activity, which is a
258             temporary hack until we add better framework support. -->
259        <activity
260            android:name=".quickcontact.QuickContactActivity"
261            android:theme="@style/Theme.QuickContact"
262            android:launchMode="singleTop"
263            android:excludeFromRecents="true"
264            android:noHistory="true"
265            android:taskAffinity=""
266            android:windowSoftInputMode="stateUnchanged">
267
268            <intent-filter>
269                <action android:name="com.android.contacts.action.QUICK_CONTACT" />
270                <category android:name="android.intent.category.DEFAULT" />
271                <data android:mimeType="vnd.android.cursor.item/contact" />
272                <data android:mimeType="vnd.android.cursor.item/person" />
273            </intent-filter>
274        </activity>
275
276        <receiver
277            android:name=".quickcontact.QuickContactBroadcastReceiver"
278            android:exported="false" />
279
280        <activity-alias android:name="ContactShortcut"
281            android:targetActivity=".activities.ContactSelectionActivity"
282            android:label="@string/shortcutContact"
283            android:icon="@mipmap/ic_launcher_shortcut_contact">
284
285            <intent-filter>
286                <action android:name="android.intent.action.CREATE_SHORTCUT" />
287                <category android:name="android.intent.category.DEFAULT" />
288            </intent-filter>
289
290        </activity-alias>
291
292        <activity-alias android:name="alias.DialShortcut"
293            android:targetActivity=".activities.ContactSelectionActivity"
294            android:label="@string/shortcutDialContact"
295            android:icon="@mipmap/ic_launcher_shortcut_directdial"
296            android:enabled="@*android:bool/config_voice_capable">
297
298            <intent-filter>
299                <action android:name="android.intent.action.CREATE_SHORTCUT" />
300                <category android:name="android.intent.category.DEFAULT" />
301                <category android:name="android.intent.category.CAR_MODE" />
302            </intent-filter>
303
304        </activity-alias>
305
306        <activity-alias android:name="alias.MessageShortcut"
307            android:targetActivity=".activities.ContactSelectionActivity"
308            android:label="@string/shortcutMessageContact"
309            android:icon="@mipmap/ic_launcher_shortcut_directmessage"
310            android:enabled="@*android:bool/config_voice_capable">
311
312            <intent-filter>
313                <action android:name="android.intent.action.CREATE_SHORTCUT" />
314                <category android:name="android.intent.category.DEFAULT" />
315            </intent-filter>
316
317        </activity-alias>
318
319        <!-- Views the details of a single contact -->
320        <activity android:name=".activities.ContactDetailActivity"
321            android:label="@string/viewContactTitle"
322            android:theme="@style/DetailActivityTheme"
323            android:parentActivityName=".activities.PeopleActivity">
324
325            <intent-filter android:label="@string/viewContactDesription">
326                <action android:name="android.intent.action.VIEW" />
327                <category android:name="android.intent.category.DEFAULT" />
328                <data android:mimeType="vnd.android.cursor.item/person" />
329                <data android:mimeType="vnd.android.cursor.item/contact" />
330                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
331            </intent-filter>
332        </activity>
333
334        <!-- Confirm that a single detail will be added to an existing contact -->
335        <activity
336            android:name=".activities.ConfirmAddDetailActivity"
337            android:label="@string/activity_title_confirm_add_detail"
338            android:theme="@style/ConfirmAddDetailDialogTheme"
339            android:windowSoftInputMode="adjustResize"
340            android:exported="false"/>
341
342        <!-- Accounts changed prompt that can appear when creating a new contact. -->
343        <activity
344            android:name=".activities.ContactEditorAccountsChangedActivity"
345            android:theme="@style/ContactEditorAccountsChangedActivityTheme"
346            android:windowSoftInputMode="adjustResize"
347            android:exported="false"/>
348
349        <!-- Create a new or edit an existing contact -->
350        <activity
351            android:name=".activities.ContactEditorActivity"
352            android:theme="@style/EditorActivityTheme"
353            android:windowSoftInputMode="adjustResize">
354
355            <intent-filter android:label="@string/editContactDescription">
356                <action android:name="android.intent.action.EDIT" />
357                <category android:name="android.intent.category.DEFAULT" />
358                <data android:mimeType="vnd.android.cursor.item/person" />
359                <data android:mimeType="vnd.android.cursor.item/contact" />
360                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
361            </intent-filter>
362            <intent-filter android:label="@string/insertContactDescription">
363                <action android:name="android.intent.action.INSERT" />
364                <category android:name="android.intent.category.DEFAULT" />
365                <data android:mimeType="vnd.android.cursor.dir/person" />
366                <data android:mimeType="vnd.android.cursor.dir/contact" />
367                <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
368            </intent-filter>
369        </activity>
370
371        <activity android:name=".common.test.FragmentTestActivity">
372            <intent-filter>
373                <category android:name="android.intent.category.TEST" />
374            </intent-filter>
375        </activity>
376
377        <!-- Stub service used to keep our process alive long enough for
378             background threads to finish their operations. -->
379        <service
380            android:name=".common.util.EmptyService"
381            android:exported="false" />
382
383        <!-- Service to save a contact -->
384        <service
385            android:name=".ContactSaveService"
386            android:exported="false" />
387
388        <!-- Attaches a photo to a contact. Started from external applications -->
389        <activity android:name=".activities.AttachPhotoActivity"
390            android:label="@string/attach_photo_dialog_title"
391            android:taskAffinity="">
392            <intent-filter>
393                <action android:name="android.intent.action.ATTACH_DATA" />
394                <data android:mimeType="image/*" />
395                <category android:name="android.intent.category.DEFAULT" />
396            </intent-filter>
397        </activity>
398
399        <!--
400            Internal photo selection activity.  This activity handles all configuration changes by
401            itself.
402        -->
403        <activity android:name=".activities.PhotoSelectionActivity"
404            android:theme="@style/Theme.PhotoSelector"
405            android:launchMode="singleTop"
406            android:windowSoftInputMode="stateUnchanged"
407            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize"
408            >
409        </activity>
410
411        <!-- vCard related -->
412        <activity android:name=".common.vcard.ImportVCardActivity"
413            android:configChanges="orientation|screenSize|keyboardHidden"
414            android:theme="@style/BackgroundOnlyTheme">
415            <intent-filter>
416                <action android:name="android.intent.action.VIEW" />
417                <data android:mimeType="text/directory" />
418                <data android:mimeType="text/vcard" />
419                <data android:mimeType="text/x-vcard" />
420                <category android:name="android.intent.category.DEFAULT" />
421            </intent-filter>
422        </activity>
423
424        <activity android:name=".common.vcard.NfcImportVCardActivity"
425            android:configChanges="orientation|screenSize|keyboardHidden"
426            android:theme="@style/BackgroundOnlyTheme">
427            <intent-filter>
428                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
429                <data android:mimeType="text/vcard" />
430                <data android:mimeType="text/x-vcard" />
431                <category android:name="android.intent.category.DEFAULT" />
432            </intent-filter>
433        </activity>
434
435        <activity android:name=".common.vcard.CancelActivity"
436            android:theme="@style/BackgroundOnlyTheme" />
437
438        <activity android:name=".common.vcard.SelectAccountActivity"
439            android:theme="@style/BackgroundOnlyTheme" />
440
441        <activity android:name=".common.vcard.ExportVCardActivity"
442            android:theme="@style/BackgroundOnlyTheme" />
443
444        <service
445            android:name=".common.vcard.VCardService"
446            android:exported="false" />
447
448        <!-- Pinned header list demo -->
449        <activity android:name=".widget.PinnedHeaderListDemoActivity">
450            <intent-filter>
451                <action android:name="android.intent.action.MAIN" />
452                <category android:name="android.intent.category.DEFAULT" />
453            </intent-filter>
454        </activity>
455
456        <!-- The widget that shows details and the social stream of a contact -->
457        <receiver android:name=".socialwidget.SocialWidgetProvider"
458            android:label="@string/social_widget_label" >
459            <intent-filter>
460                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
461            </intent-filter>
462            <meta-data android:name="android.appwidget.provider"
463                    android:resource="@xml/social_widget_info" />
464        </receiver>
465
466        <activity
467            android:name=".socialwidget.SocialWidgetConfigureActivity"
468            android:theme="@android:style/Theme.Translucent.NoTitleBar" >
469            <intent-filter>
470                <action android:name="android.intent.action.APPWIDGET_PICK" />
471            </intent-filter>
472        </activity>
473
474        <!-- Intercept Dialer Intents for devices without a phone.
475             This activity should have the same intent filters as the DialtactsActivity,
476             so that its capturing the same events. Omit android.intent.category.LAUNCHER, because
477             we don't want this to show up in the Launcher. The priorities of the intent-filters
478             are set lower, so that the user does not see a disambig dialog -->
479        <activity
480            android:name="com.android.contacts.NonPhoneActivity"
481            android:theme="@style/NonPhoneActivityTheme"
482            >
483            <intent-filter android:priority="-1">
484                <action android:name="android.intent.action.DIAL"/>
485                <category android:name="android.intent.category.DEFAULT"/>
486                <category android:name="android.intent.category.BROWSABLE"/>
487                <data android:mimeType="vnd.android.cursor.item/phone"/>
488                <data android:mimeType="vnd.android.cursor.item/person"/>
489            </intent-filter>
490            <intent-filter android:priority="-1">
491                <action android:name="android.intent.action.DIAL"/>
492                <category android:name="android.intent.category.DEFAULT"/>
493                <category android:name="android.intent.category.BROWSABLE"/>
494                <data android:scheme="voicemail"/>
495            </intent-filter>
496            <intent-filter android:priority="-1">
497                <action android:name="android.intent.action.DIAL"/>
498                <category android:name="android.intent.category.DEFAULT"/>
499            </intent-filter>
500            <intent-filter android:priority="-1">
501                <action android:name="android.intent.action.MAIN"/>
502                <category android:name="android.intent.category.DEFAULT"/>
503                <category android:name="android.intent.category.BROWSABLE"/>
504            </intent-filter>
505            <intent-filter android:priority="-1">
506                <action android:name="android.intent.action.VIEW"/>
507                <action android:name="android.intent.action.DIAL"/>
508                <category android:name="android.intent.category.DEFAULT"/>
509                <category android:name="android.intent.category.BROWSABLE"/>
510                <data android:scheme="tel"/>
511            </intent-filter>
512            <intent-filter android:priority="-1">
513                <action android:name="android.intent.action.VIEW"/>
514                <category android:name="android.intent.category.DEFAULT"/>
515                <category android:name="android.intent.category.BROWSABLE"/>
516                <data android:mimeType="vnd.android.cursor.dir/calls"/>
517            </intent-filter>
518            <intent-filter android:priority="-1">
519                <action android:name="android.intent.action.CALL_BUTTON"/>
520                <category android:name="android.intent.category.DEFAULT"/>
521                <category android:name="android.intent.category.BROWSABLE"/>
522            </intent-filter>
523        </activity>
524
525        <!-- Service that is exclusively for the Phone application that sends out a view
526             notification. This service might be removed in future versions of the app.
527
528             This is called explicitly by the phone app via package name and class.
529             (PhoneUtils.sendViewNotificationAsync()).  If this service moves, then phone
530             needs to be changed as well.
531        -->
532        <service android:name=".ViewNotificationService"
533                 android:permission="android.permission.WRITE_CONTACTS"
534                 android:exported="true">
535            <intent-filter>
536                <action android:name="com.android.contacts.VIEW_NOTIFICATION"/>
537                <data android:mimeType="vnd.android.cursor.item/contact"/>
538            </intent-filter>
539        </service>
540
541        <meta-data android:name="android.nfc.disable_beam_default" android:value="true" />
542    </application>
543</manifest>
544