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