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