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