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