• 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:versionCode="10710"
20          android:versionName="1.7.10">
21
22    <uses-sdk
23        android:minSdkVersion="21"
24        android:targetSdkVersion="25"/>
25
26    <original-package android:name="com.android.contacts"/>
27
28    <!-- Contacts permission listed first because order determines
29         order that permissions are requested with some OEMs -->
30    <uses-permission android:name="android.permission.READ_CONTACTS"/>
31    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
32    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
33    <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
34    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
35    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
36    <uses-permission android:name="android.permission.CALL_PHONE"/>
37    <uses-permission android:name="android.permission.READ_PROFILE"/>
38    <uses-permission android:name="android.permission.WRITE_PROFILE"/>
39    <uses-permission android:name="android.permission.INTERNET"/>
40    <uses-permission android:name="android.permission.NFC"/>
41    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
42    <uses-permission android:name="android.permission.WAKE_LOCK"/>
43    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
44    <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
45    <uses-permission android:name="android.permission.VIBRATE"/>
46    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
47    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
48    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
49    <!-- Following used for QuickContacts -->
50    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
51    <uses-permission android:name="android.permission.READ_SMS"/>
52    <uses-permission android:name="android.permission.READ_CALENDAR"/>
53    <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"/>
54    <!-- Following used for Contact metadata syncing -->
55    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
56    <!-- Following used for getting the status of the contacts sync adapter -->
57    <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
58    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
59
60    <uses-feature
61        android:name="android.hardware.telephony"
62        android:required="false"/>
63
64    <application
65        android:name="com.android.contacts.ContactsApplication"
66        android:hardwareAccelerated="true"
67        android:icon="@mipmap/ic_contacts_launcher"
68        android:label="@string/applicationLabel"
69        android:supportsRtl="true"
70        android:taskAffinity="android.task.contacts"
71        android:usesCleartextTraffic="false">
72        <!-- The main Contacts activity with the contact list, favorites, and groups. -->
73        <activity
74            android:name=".activities.PeopleActivity"
75            android:alwaysRetainTaskState="true"
76            android:launchMode="singleTop"
77            android:resizeableActivity="true"
78            android:theme="@style/LaunchScreenTheme"
79            android:visibleToInstantApps="true"
80            >
81            <intent-filter>
82                <action android:name="android.intent.action.MAIN"/>
83
84                <category android:name="android.intent.category.DEFAULT"/>
85                <category android:name="android.intent.category.LAUNCHER"/>
86                <category android:name="android.intent.category.BROWSABLE"/>
87                <category android:name="android.intent.category.APP_CONTACTS"/>
88            </intent-filter>
89            <intent-filter>
90                <action android:name="com.android.contacts.action.LIST_DEFAULT"/>
91
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"/>
98
99                <category android:name="android.intent.category.DEFAULT"/>
100                <category android:name="android.intent.category.TAB"/>
101            </intent-filter>
102
103            <intent-filter>
104                <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS"/>
105
106                <category android:name="android.intent.category.DEFAULT"/>
107                <category android:name="android.intent.category.TAB"/>
108            </intent-filter>
109
110            <intent-filter>
111                <action android:name="com.android.contacts.action.LIST_CONTACTS_WITH_PHONES"/>
112
113                <category android:name="android.intent.category.DEFAULT"/>
114                <category android:name="android.intent.category.TAB"/>
115            </intent-filter>
116
117            <intent-filter>
118                <action android:name="com.android.contacts.action.LIST_STARRED"/>
119
120                <category android:name="android.intent.category.DEFAULT"/>
121                <category android:name="android.intent.category.TAB"/>
122            </intent-filter>
123
124            <intent-filter>
125                <action android:name="com.android.contacts.action.LIST_FREQUENT"/>
126
127                <category android:name="android.intent.category.DEFAULT"/>
128                <category android:name="android.intent.category.TAB"/>
129            </intent-filter>
130
131            <intent-filter>
132                <action android:name="com.android.contacts.action.LIST_STREQUENT"/>
133
134                <category android:name="android.intent.category.DEFAULT"/>
135                <category android:name="android.intent.category.TAB"/>
136            </intent-filter>
137
138            <intent-filter>
139                <action android:name="android.intent.action.SEARCH"/>
140                <category android:name="android.intent.category.DEFAULT"/>
141                <data android:mimeType="vnd.android.cursor.dir/contact"/>
142            </intent-filter>
143
144            <intent-filter>
145                <action android:name="android.intent.action.SEARCH"/>
146                <category android:name="android.intent.category.DEFAULT"/>
147            </intent-filter>
148
149            <intent-filter>
150                <action android:name="android.intent.action.VIEW"/>
151                <category android:name="android.intent.category.DEFAULT"/>
152
153                <data android:mimeType="vnd.android.cursor.dir/person"/>
154                <data android:mimeType="vnd.android.cursor.dir/contact"/>
155                <data android:mimeType="vnd.android.cursor.item/group"/>
156            </intent-filter>
157
158            <intent-filter>
159                <action android:name="android.intent.action.EDIT"/>
160                <category android:name="android.intent.category.DEFAULT"/>
161                <data android:mimeType="vnd.android.cursor.item/group"/>
162            </intent-filter>
163
164            <intent-filter>
165                <action android:name="android.intent.action.INSERT"/>
166                <category android:name="android.intent.category.DEFAULT"/>
167                <data android:mimeType="vnd.android.cursor.dir/group"/>
168            </intent-filter>
169
170            <meta-data
171                android:name="android.app.searchable"
172                android:resource="@xml/searchable"
173                />
174
175            <meta-data
176                android:name="android.app.shortcuts"
177                android:resource="@xml/shortcuts"
178                />
179
180        </activity>
181
182        <activity
183            android:name=".activities.ContactSelectionActivity"
184            android:clearTaskOnLaunch="true"
185            android:launchMode="singleTop"
186            android:theme="@style/ContactPickerTheme"
187            android:uiOptions="splitActionBarWhenNarrow"
188            android:windowSoftInputMode="adjustResize"
189            android:visibleToInstantApps="true">
190            <meta-data android:name="android.app.shortcuts.new_config"
191                android:value="true" />
192            <intent-filter>
193                <action android:name="android.intent.action.INSERT_OR_EDIT"/>
194                <category android:name="android.intent.category.DEFAULT"/>
195
196                <data android:mimeType="vnd.android.cursor.item/person"/>
197                <data android:mimeType="vnd.android.cursor.item/contact"/>
198                <data android:mimeType="vnd.android.cursor.item/raw_contact"/>
199            </intent-filter>
200
201            <intent-filter>
202                <action android:name="android.intent.action.PICK"/>
203                <category android:name="android.intent.category.DEFAULT"/>
204
205                <data android:mimeType="vnd.android.cursor.dir/contact"/>
206                <data android:mimeType="vnd.android.cursor.dir/person"/>
207                <data android:mimeType="vnd.android.cursor.dir/phone_v2"/>
208                <data android:mimeType="vnd.android.cursor.dir/phone"/>
209                <data android:mimeType="vnd.android.cursor.dir/postal-address_v2"/>
210                <data android:mimeType="vnd.android.cursor.dir/postal-address"/>
211                <data android:mimeType="vnd.android.cursor.dir/email_v2"/>
212                <data android:mimeType="vnd.android.cursor.dir/group"/>
213            </intent-filter>
214
215            <intent-filter>
216                <action android:name="android.intent.action.GET_CONTENT"/>
217                <category android:name="android.intent.category.DEFAULT"/>
218
219                <data android:mimeType="vnd.android.cursor.item/contact"/>
220                <data android:mimeType="vnd.android.cursor.item/person"/>
221                <data android:mimeType="vnd.android.cursor.item/phone_v2"/>
222                <data android:mimeType="vnd.android.cursor.item/phone"/>
223                <data android:mimeType="vnd.android.cursor.item/postal-address_v2"/>
224                <data android:mimeType="vnd.android.cursor.item/postal-address"/>
225            </intent-filter>
226
227            <intent-filter>
228                <action android:name="com.android.contacts.action.JOIN_CONTACT"/>
229                <category android:name="android.intent.category.DEFAULT"/>
230            </intent-filter>
231        </activity>
232
233        <!-- Backwards compatibility: somebody may have hard coded this activity name -->
234        <activity-alias
235            android:name="ContactsListActivity"
236            android:targetActivity=".activities.PeopleActivity"
237            />
238
239        <!-- Backwards compatibility: "Contacts" from Honeycomb -->
240        <activity-alias
241            android:name=".activities.ContactsFrontDoor"
242            android:exported="true"
243            android:targetActivity=".activities.PeopleActivity"
244            />
245
246        <!-- Backwards compatibility: "Contacts" from Gingerbread and earlier -->
247        <activity-alias
248            android:name="DialtactsContactsEntryActivity"
249            android:exported="true"
250            android:targetActivity=".activities.PeopleActivity"
251            />
252
253        <!-- Used to set options -->
254        <activity
255            android:name=".preference.ContactsPreferenceActivity"
256            android:exported="false"
257            android:label="@string/activity_title_settings"
258            android:launchMode="singleTop"
259            android:theme="@style/ContactsPreferencesTheme"/>
260
261        <activity
262            android:name=".activities.LicenseActivity"
263            android:exported="true"
264            android:label="@string/activity_title_licenses"
265            android:theme="@style/ContactsPreferencesTheme"/>
266
267        <!-- Used to filter contacts list by account -->
268        <activity
269            android:name=".list.AccountFilterActivity"
270            android:label="@string/activity_title_contacts_filter"
271            android:theme="@style/ContactListFilterTheme"/>
272
273        <!-- Used to select display and sync groups -->
274        <activity
275            android:name=".list.CustomContactListFilterActivity"
276            android:label="@string/custom_list_filter"
277            android:theme="@style/ContactListFilterTheme"/>
278
279        <activity
280            android:name=".activities.RequestPermissionsActivity"
281            android:exported="false"
282            android:theme="@style/PeopleTheme"/>
283
284        <activity
285            android:name=".activities.RequestDesiredPermissionsActivity"
286            android:exported="false"
287            android:theme="@style/PeopleTheme"/>
288
289        <activity
290            android:name=".activities.RequestImportVCardPermissionsActivity"
291            android:exported="false"
292            android:theme="@style/PeopleTheme"/>
293
294        <activity
295            android:name=".activities.ShowOrCreateActivity"
296            android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar">
297
298            <intent-filter>
299                <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT"/>
300                <category android:name="android.intent.category.DEFAULT"/>
301
302                <data android:scheme="mailto"/>
303                <data android:scheme="tel"/>
304            </intent-filter>
305        </activity>
306
307        <activity
308            android:name=".quickcontact.QuickContactActivity"
309            android:excludeFromRecents="true"
310            android:launchMode="singleTop"
311            android:taskAffinity=""
312            android:theme="@style/Theme.QuickContact"
313            android:windowSoftInputMode="stateUnchanged">
314
315            <intent-filter>
316                <action android:name="com.android.contacts.action.QUICK_CONTACT"/>
317                <action android:name="android.provider.action.QUICK_CONTACT"/>
318
319                <category android:name="android.intent.category.DEFAULT"/>
320
321                <data android:mimeType="vnd.android.cursor.item/contact"/>
322                <data android:mimeType="vnd.android.cursor.item/person"/>
323            </intent-filter>
324
325            <intent-filter>
326                <action android:name="android.intent.action.VIEW"/>
327                <category android:name="android.intent.category.DEFAULT"/>
328
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        <receiver
336            android:name=".quickcontact.QuickContactBroadcastReceiver"
337            android:exported="false"/>
338
339        <!-- Responsible for creating notification channels when boot is completed or when app is
340        re-installed -->
341        <receiver android:name=".interactions.OnBootOrUpgradeReceiver">
342            <intent-filter>
343                <action android:name="android.intent.action.BOOT_COMPLETED" />
344                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
345            </intent-filter>
346        </receiver>
347
348        <activity-alias
349            android:name="ContactShortcut"
350            android:icon="@drawable/logo_quick_contacts_color_44in48dp"
351            android:label="@string/shortcutContact"
352            android:targetActivity=".activities.ContactSelectionActivity">
353
354            <intent-filter>
355                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
356                <category android:name="android.intent.category.DEFAULT"/>
357            </intent-filter>
358
359        </activity-alias>
360
361        <activity-alias
362            android:name="alias.DialShortcut"
363            android:icon="@drawable/logo_quick_contacts_dialer_color_44in48dp"
364            android:label="@string/shortcutDialContact"
365            android:targetActivity=".activities.ContactSelectionActivity">
366
367            <intent-filter>
368                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
369
370                <category android:name="android.intent.category.DEFAULT"/>
371                <category android:name="android.intent.category.CAR_MODE"/>
372            </intent-filter>
373
374        </activity-alias>
375
376        <activity-alias
377            android:name="alias.MessageShortcut"
378            android:icon="@drawable/logo_quick_contacts_mail_color_44in48dp"
379            android:label="@string/shortcutMessageContact"
380            android:targetActivity=".activities.ContactSelectionActivity">
381
382            <intent-filter>
383                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
384                <category android:name="android.intent.category.DEFAULT"/>
385            </intent-filter>
386
387        </activity-alias>
388
389        <!-- Accounts changed prompt that can appear when creating a new contact. -->
390        <activity
391            android:name=".activities.ContactEditorAccountsChangedActivity"
392            android:exported="false"
393            android:theme="@style/ContactEditorAccountsChangedActivityTheme"
394            android:windowSoftInputMode="adjustResize"/>
395
396        <!-- Edit or create a contact with only the most important fields displayed initially. -->
397        <activity
398            android:name=".activities.ContactEditorActivity"
399            android:theme="@style/EditorActivityTheme">
400
401            <intent-filter>
402                <action android:name="android.intent.action.INSERT"/>
403                <category android:name="android.intent.category.DEFAULT"/>
404
405                <data android:mimeType="vnd.android.cursor.dir/person"/>
406                <data android:mimeType="vnd.android.cursor.dir/contact"/>
407                <data android:mimeType="vnd.android.cursor.dir/raw_contact"/>
408            </intent-filter>
409        </activity>
410
411        <!-- Keep support for apps that expect the Compact editor -->
412        <activity-alias
413            android:name="com.android.contacts.activities.CompactContactEditorActivity"
414            android:exported="true"
415            android:targetActivity=".activities.ContactEditorActivity">
416            <intent-filter android:priority="-1">
417                <action android:name="android.intent.action.INSERT"/>
418                <category android:name="android.intent.category.DEFAULT"/>
419
420                <data android:mimeType="vnd.android.cursor.dir/person"/>
421                <data android:mimeType="vnd.android.cursor.dir/contact"/>
422                <data android:mimeType="vnd.android.cursor.dir/raw_contact"/>
423            </intent-filter>
424        </activity-alias>
425
426        <activity
427            android:name=".activities.ContactEditorSpringBoardActivity"
428            android:theme="@style/TransparentThemeAppCompat">
429
430            <intent-filter>
431                <action android:name="android.intent.action.EDIT"/>
432                <category android:name="android.intent.category.DEFAULT"/>
433
434                <data android:mimeType="vnd.android.cursor.item/person"/>
435                <data android:mimeType="vnd.android.cursor.item/contact"/>
436                <data android:mimeType="vnd.android.cursor.item/raw_contact"/>
437            </intent-filter>
438        </activity>
439
440        <activity android:name=".test.FragmentTestActivity">
441            <intent-filter>
442                <category android:name="android.intent.category.TEST"/>
443            </intent-filter>
444        </activity>
445
446        <!-- Stub service used to keep our process alive long enough for
447             background threads to finish their operations. -->
448        <service
449            android:name=".util.EmptyService"
450            android:exported="false"/>
451
452        <!-- Service to save a contact -->
453        <service
454            android:name=".ContactSaveService"
455            android:exported="false"/>
456
457        <!-- Service to import contacts from the SIM card -->
458        <service
459            android:name=".SimImportService"
460            android:exported="false"/>
461
462        <!-- Attaches a photo to a contact. Started from external applications -->
463        <activity
464            android:name=".activities.AttachPhotoActivity"
465            android:label="@string/attach_photo_dialog_title"
466            android:taskAffinity="">
467            <intent-filter>
468                <action android:name="android.intent.action.ATTACH_DATA"/>
469                <data android:mimeType="image/*"/>
470                <category android:name="android.intent.category.DEFAULT"/>
471            </intent-filter>
472        </activity>
473
474        <!-- vCard related -->
475        <activity
476            android:name=".vcard.ImportVCardActivity"
477            android:configChanges="orientation|screenSize|keyboardHidden"
478            android:theme="@style/BackgroundOnlyTheme">
479            <intent-filter>
480                <action android:name="android.intent.action.VIEW"/>
481
482                <data android:mimeType="text/directory"/>
483                <data android:mimeType="text/vcard"/>
484                <data android:mimeType="text/x-vcard"/>
485
486                <category android:name="android.intent.category.DEFAULT"/>
487            </intent-filter>
488        </activity>
489
490        <activity
491            android:name=".vcard.NfcImportVCardActivity"
492            android:configChanges="orientation|screenSize|keyboardHidden"
493            android:theme="@style/BackgroundOnlyTheme">
494            <intent-filter>
495                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
496
497                <data android:mimeType="text/vcard"/>
498                <data android:mimeType="text/x-vcard"/>
499
500                <category android:name="android.intent.category.DEFAULT"/>
501            </intent-filter>
502        </activity>
503
504        <activity
505            android:name=".vcard.CancelActivity"
506            android:theme="@style/BackgroundOnlyTheme"/>
507
508        <activity
509            android:name=".vcard.SelectAccountActivity"
510            android:theme="@style/BackgroundOnlyTheme"/>
511
512        <activity
513            android:name=".vcard.ExportVCardActivity"
514            android:theme="@style/BackgroundOnlyTheme"/>
515
516        <activity
517            android:name=".vcard.ShareVCardActivity"
518            android:theme="@style/BackgroundOnlyTheme"/>
519
520        <activity
521            android:name=".activities.SimImportActivity"
522            android:label="@string/sim_import_title"
523            android:theme="@style/PeopleThemeAppCompat.FullScreenDialog.SimImportActivity"/>
524
525
526        <service
527            android:name=".vcard.VCardService"
528            android:exported="false"/>
529        <!-- end vCard related -->
530
531        <!-- Intercept Dialer Intents for devices without a phone.
532             This activity should have the same intent filters as the DialtactsActivity,
533             so that its capturing the same events. Omit android.intent.category.LAUNCHER, because
534             we don't want this to show up in the Launcher. The priorities of the intent-filters
535             are set lower, so that the user does not see a disambig dialog -->
536        <activity
537            android:name="com.android.contacts.NonPhoneActivity"
538            android:theme="@style/NonPhoneActivityTheme">
539            <intent-filter android:priority="-1">
540                <action android:name="android.intent.action.MAIN"/>
541
542                <category android:name="android.intent.category.DEFAULT"/>
543                <category android:name="android.intent.category.BROWSABLE"/>
544            </intent-filter>
545            <intent-filter android:priority="-1">
546                <action android:name="android.intent.action.VIEW"/>
547
548                <category android:name="android.intent.category.DEFAULT"/>
549                <category android:name="android.intent.category.BROWSABLE"/>
550
551                <data android:scheme="tel"/>
552            </intent-filter>
553            <intent-filter android:priority="-1">
554                <action android:name="android.intent.action.VIEW"/>
555
556                <category android:name="android.intent.category.DEFAULT"/>
557                <category android:name="android.intent.category.BROWSABLE"/>
558
559                <data android:mimeType="vnd.android.cursor.dir/calls"/>
560            </intent-filter>
561        </activity>
562
563        <activity
564            android:name="com.android.contacts.dialog.CallSubjectDialog"
565            android:theme="@style/Theme.CallSubjectDialogTheme"
566            android:windowSoftInputMode="stateVisible|adjustResize">
567            <intent-filter>
568                <action android:name="android.intent.action.VIEW"/>
569            </intent-filter>
570        </activity>
571
572        <!-- Service that is exclusively for the Phone application that sends out a view
573             notification. This service might be removed in future versions of the app.
574
575             This is called explicitly by the phone app via package name and class.
576             (PhoneUtils.sendViewNotificationAsync()).  If this service moves, then phone
577             needs to be changed as well.
578        -->
579        <service
580            android:name=".ViewNotificationService"
581            android:exported="true"
582            android:permission="android.permission.WRITE_CONTACTS">
583            <intent-filter>
584                <action android:name="com.android.contacts.VIEW_NOTIFICATION"/>
585                <data android:mimeType="vnd.android.cursor.item/contact"/>
586            </intent-filter>
587        </service>
588
589        <!-- Service used to run JobScheduler jobs -->
590        <service
591            android:name="com.android.contacts.ContactsJobService"
592            android:permission="android.permission.BIND_JOB_SERVICE"/>
593
594        <provider
595            android:name="android.support.v4.content.FileProvider"
596            android:authorities="@string/contacts_file_provider_authority"
597            android:exported="false"
598            android:grantUriPermissions="true">
599            <meta-data
600                android:name="android.support.FILE_PROVIDER_PATHS"
601                android:resource="@xml/file_paths"/>
602        </provider>
603
604        <meta-data
605            android:name="android.nfc.disable_beam_default"
606            android:value="true"/>
607
608    </application>
609</manifest>
610