1<?xml version="1.0" encoding="utf-8"?> 2<!-- Copyright (C) 2006 The Android Open Source Project 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15--> 16 17<manifest xmlns:android="http://schemas.android.com/apk/res/android" 18 package="com.android.contacts" 19 android:sharedUserId="android.uid.shared"> 20 21 <original-package android:name="com.android.contacts" /> 22 23 <uses-permission android:name="android.permission.CALL_PRIVILEGED" /> 24 <uses-permission android:name="android.permission.READ_CONTACTS" /> 25 <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 26 <uses-permission android:name="android.permission.READ_CALL_LOG" /> 27 <uses-permission android:name="android.permission.WRITE_CALL_LOG" /> 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.ACCESS_FINE_LOCATION" /> 31 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 32 <uses-permission android:name="android.permission.READ_PROFILE" /> 33 <uses-permission android:name="android.permission.WRITE_PROFILE" /> 34 <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" /> 35 <uses-permission android:name="android.permission.INTERNET" /> 36 <uses-permission android:name="android.permission.NFC" /> 37 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 38 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 39 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 40 <uses-permission android:name="android.permission.WAKE_LOCK" /> 41 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 42 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 43 <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 44 <uses-permission android:name="android.permission.VIBRATE" /> 45 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> 46 <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" /> 47 <uses-permission android:name="com.android.voicemail.permission.READ_WRITE_ALL_VOICEMAIL" /> 48 <uses-permission android:name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK" /> 49 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 50 <!-- allow broadcasting secret code intents that reboot the phone --> 51 <uses-permission android:name="android.permission.REBOOT" /> 52 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 53 54 <application 55 android:name="com.android.contacts.ContactsApplication" 56 android:label="@string/contactsList" 57 android:icon="@mipmap/ic_launcher_contacts" 58 android:taskAffinity="android.task.contacts" 59 android:hardwareAccelerated="true" 60 android:supportsRtl="true" 61 > 62 63 <!-- The main Contacts activity with the contact list, favorites, and groups. --> 64 <activity android:name=".activities.PeopleActivity" 65 android:label="@string/people" 66 android:theme="@style/PeopleTheme" 67 android:uiOptions="splitActionBarWhenNarrow" 68 android:clearTaskOnLaunch="true" 69 android:launchMode="singleTop" 70 > 71 <intent-filter> 72 <action android:name="android.intent.action.MAIN" /> 73 <category android:name="android.intent.category.DEFAULT" /> 74 <category android:name="android.intent.category.LAUNCHER" /> 75 <category android:name="android.intent.category.BROWSABLE" /> 76 <category android:name="android.intent.category.APP_CONTACTS" /> 77 </intent-filter> 78 <intent-filter> 79 <action android:name="com.android.contacts.action.LIST_DEFAULT" /> 80 <category android:name="android.intent.category.DEFAULT" /> 81 <category android:name="android.intent.category.TAB" /> 82 </intent-filter> 83 84 <intent-filter> 85 <action android:name="com.android.contacts.action.LIST_CONTACTS" /> 86 <category android:name="android.intent.category.DEFAULT" /> 87 <category android:name="android.intent.category.TAB" /> 88 </intent-filter> 89 90 <intent-filter> 91 <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS" /> 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_WITH_PHONES" /> 98 <category android:name="android.intent.category.DEFAULT" /> 99 <category android:name="android.intent.category.TAB" /> 100 </intent-filter> 101 102 <intent-filter android:label="@string/starredList"> 103 <action android:name="com.android.contacts.action.LIST_STARRED" /> 104 <category android:name="android.intent.category.DEFAULT" /> 105 <category android:name="android.intent.category.TAB" /> 106 </intent-filter> 107 108 <intent-filter android:label="@string/frequentList"> 109 <action android:name="com.android.contacts.action.LIST_FREQUENT" /> 110 <category android:name="android.intent.category.DEFAULT" /> 111 <category android:name="android.intent.category.TAB" /> 112 </intent-filter> 113 114 <intent-filter android:label="@string/strequentList"> 115 <action android:name="com.android.contacts.action.LIST_STREQUENT" /> 116 <category android:name="android.intent.category.DEFAULT" /> 117 <category android:name="android.intent.category.TAB" /> 118 </intent-filter> 119 120 <intent-filter> 121 <action android:name="android.intent.action.SEARCH" /> 122 <category android:name="android.intent.category.DEFAULT" /> 123 <data android:mimeType="vnd.android.cursor.dir/contact" /> 124 </intent-filter> 125 126 <intent-filter> 127 <action android:name="android.intent.action.SEARCH" /> 128 <category android:name="android.intent.category.DEFAULT" /> 129 </intent-filter> 130 131 <intent-filter> 132 <action android:name="com.android.contacts.action.FILTER_CONTACTS" /> 133 <category android:name="android.intent.category.DEFAULT" /> 134 <data android:mimeType="vnd.android.cursor.dir/contact" /> 135 </intent-filter> 136 137 <intent-filter> 138 <action android:name="android.intent.action.VIEW" /> 139 <category android:name="android.intent.category.DEFAULT" /> 140 <data android:mimeType="vnd.android.cursor.dir/person" /> 141 <data android:mimeType="vnd.android.cursor.dir/contact" /> 142 </intent-filter> 143 144 <meta-data android:name="android.app.searchable" 145 android:resource="@xml/searchable" 146 /> 147 </activity> 148 149 <activity android:name=".activities.ContactSelectionActivity" 150 android:label="@string/contactsList" 151 android:theme="@style/ContactPickerTheme" 152 android:launchMode="singleTop" 153 android:clearTaskOnLaunch="true" 154 android:uiOptions="splitActionBarWhenNarrow" 155 android:windowSoftInputMode="adjustResize"> 156 <intent-filter> 157 <action android:name="android.intent.action.INSERT_OR_EDIT" /> 158 <category android:name="android.intent.category.DEFAULT" /> 159 <data android:mimeType="vnd.android.cursor.item/person" /> 160 <data android:mimeType="vnd.android.cursor.item/contact" /> 161 <data android:mimeType="vnd.android.cursor.item/raw_contact" /> 162 </intent-filter> 163 164 <intent-filter> 165 <action android:name="android.intent.action.PICK" /> 166 <category android:name="android.intent.category.DEFAULT" /> 167 <data android:mimeType="vnd.android.cursor.dir/contact" /> 168 <data android:mimeType="vnd.android.cursor.dir/person" /> 169 <data android:mimeType="vnd.android.cursor.dir/phone_v2" /> 170 <data android:mimeType="vnd.android.cursor.dir/phone" /> 171 <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" /> 172 <data android:mimeType="vnd.android.cursor.dir/postal-address" /> 173 <data android:mimeType="vnd.android.cursor.dir/email_v2" /> 174 </intent-filter> 175 176 <intent-filter> 177 <action android:name="android.intent.action.GET_CONTENT" /> 178 <category android:name="android.intent.category.DEFAULT" /> 179 <data android:mimeType="vnd.android.cursor.item/contact" /> 180 <data android:mimeType="vnd.android.cursor.item/person" /> 181 <data android:mimeType="vnd.android.cursor.item/phone_v2" /> 182 <data android:mimeType="vnd.android.cursor.item/phone" /> 183 <data android:mimeType="vnd.android.cursor.item/postal-address_v2" /> 184 <data android:mimeType="vnd.android.cursor.item/postal-address" /> 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 <!-- An activity for joining contacts --> 206 <activity android:name=".activities.JoinContactActivity" 207 android:theme="@style/JoinContactActivityTheme" 208 android:clearTaskOnLaunch="true" 209 > 210 <intent-filter> 211 <action android:name="com.android.contacts.action.JOIN_CONTACT" /> 212 <category android:name="android.intent.category.DEFAULT" /> 213 </intent-filter> 214 </activity> 215 216 <!-- Used to set options --> 217 <activity 218 android:name=".preference.ContactsPreferenceActivity" 219 android:label="@string/activity_title_settings" 220 android:theme="@style/ContactsPreferencesTheme" /> 221 222 <!-- Used to filter contacts list by account --> 223 <activity 224 android:name=".common.list.AccountFilterActivity" 225 android:label="@string/activity_title_contacts_filter" 226 android:theme="@style/ContactListFilterTheme" /> 227 228 <!-- Used to select display and sync groups --> 229 <activity 230 android:name=".common.list.CustomContactListFilterActivity" 231 android:label="@string/custom_list_filter" 232 android:theme="@style/ContactListFilterTheme" /> 233 234 <activity 235 android:name=".activities.ShowOrCreateActivity" 236 android:theme="@android:style/Theme.Translucent.NoTitleBar"> 237 238 <intent-filter> 239 <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" /> 240 <category android:name="android.intent.category.DEFAULT" /> 241 <data android:scheme="mailto" /> 242 <data android:scheme="tel" /> 243 </intent-filter> 244 </activity> 245 246 <!-- Views the details of a single group --> 247 <activity android:name=".activities.GroupDetailActivity" 248 android:label="" 249 android:theme="@style/DetailActivityTheme"/> 250 251 <!-- Create a new or edit an existing group --> 252 <activity 253 android:name=".activities.GroupEditorActivity" 254 android:theme="@style/EditorActivityTheme" 255 android:windowSoftInputMode="adjustResize" /> 256 257 <!-- Used to show QuickContact window over a translucent activity, which is a 258 temporary hack until we add better framework support. --> 259 <activity 260 android:name=".quickcontact.QuickContactActivity" 261 android:theme="@style/Theme.QuickContact" 262 android:launchMode="singleTop" 263 android:excludeFromRecents="true" 264 android:noHistory="true" 265 android:taskAffinity="" 266 android:windowSoftInputMode="stateUnchanged"> 267 268 <intent-filter> 269 <action android:name="com.android.contacts.action.QUICK_CONTACT" /> 270 <category android:name="android.intent.category.DEFAULT" /> 271 <data android:mimeType="vnd.android.cursor.item/contact" /> 272 <data android:mimeType="vnd.android.cursor.item/person" /> 273 </intent-filter> 274 </activity> 275 276 <receiver 277 android:name=".quickcontact.QuickContactBroadcastReceiver" 278 android:exported="false" /> 279 280 <activity-alias android:name="ContactShortcut" 281 android:targetActivity=".activities.ContactSelectionActivity" 282 android:label="@string/shortcutContact" 283 android:icon="@mipmap/ic_launcher_shortcut_contact"> 284 285 <intent-filter> 286 <action android:name="android.intent.action.CREATE_SHORTCUT" /> 287 <category android:name="android.intent.category.DEFAULT" /> 288 </intent-filter> 289 290 </activity-alias> 291 292 <activity-alias android:name="alias.DialShortcut" 293 android:targetActivity=".activities.ContactSelectionActivity" 294 android:label="@string/shortcutDialContact" 295 android:icon="@mipmap/ic_launcher_shortcut_directdial" 296 android:enabled="@*android:bool/config_voice_capable"> 297 298 <intent-filter> 299 <action android:name="android.intent.action.CREATE_SHORTCUT" /> 300 <category android:name="android.intent.category.DEFAULT" /> 301 <category android:name="android.intent.category.CAR_MODE" /> 302 </intent-filter> 303 304 </activity-alias> 305 306 <activity-alias android:name="alias.MessageShortcut" 307 android:targetActivity=".activities.ContactSelectionActivity" 308 android:label="@string/shortcutMessageContact" 309 android:icon="@mipmap/ic_launcher_shortcut_directmessage" 310 android:enabled="@*android:bool/config_voice_capable"> 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 <!-- Views the details of a single contact --> 320 <activity android:name=".activities.ContactDetailActivity" 321 android:label="@string/viewContactTitle" 322 android:theme="@style/DetailActivityTheme" 323 android:parentActivityName=".activities.PeopleActivity"> 324 325 <intent-filter android:label="@string/viewContactDesription"> 326 <action android:name="android.intent.action.VIEW" /> 327 <category android:name="android.intent.category.DEFAULT" /> 328 <data android:mimeType="vnd.android.cursor.item/person" /> 329 <data android:mimeType="vnd.android.cursor.item/contact" /> 330 <data android:mimeType="vnd.android.cursor.item/raw_contact" /> 331 </intent-filter> 332 </activity> 333 334 <!-- Confirm that a single detail will be added to an existing contact --> 335 <activity 336 android:name=".activities.ConfirmAddDetailActivity" 337 android:label="@string/activity_title_confirm_add_detail" 338 android:theme="@style/ConfirmAddDetailDialogTheme" 339 android:windowSoftInputMode="adjustResize" 340 android:exported="false"/> 341 342 <!-- Accounts changed prompt that can appear when creating a new contact. --> 343 <activity 344 android:name=".activities.ContactEditorAccountsChangedActivity" 345 android:theme="@style/ContactEditorAccountsChangedActivityTheme" 346 android:windowSoftInputMode="adjustResize" 347 android:exported="false"/> 348 349 <!-- Create a new or edit an existing contact --> 350 <activity 351 android:name=".activities.ContactEditorActivity" 352 android:theme="@style/EditorActivityTheme" 353 android:windowSoftInputMode="adjustResize"> 354 355 <intent-filter android:label="@string/editContactDescription"> 356 <action android:name="android.intent.action.EDIT" /> 357 <category android:name="android.intent.category.DEFAULT" /> 358 <data android:mimeType="vnd.android.cursor.item/person" /> 359 <data android:mimeType="vnd.android.cursor.item/contact" /> 360 <data android:mimeType="vnd.android.cursor.item/raw_contact" /> 361 </intent-filter> 362 <intent-filter android:label="@string/insertContactDescription"> 363 <action android:name="android.intent.action.INSERT" /> 364 <category android:name="android.intent.category.DEFAULT" /> 365 <data android:mimeType="vnd.android.cursor.dir/person" /> 366 <data android:mimeType="vnd.android.cursor.dir/contact" /> 367 <data android:mimeType="vnd.android.cursor.dir/raw_contact" /> 368 </intent-filter> 369 </activity> 370 371 <activity android:name=".common.test.FragmentTestActivity"> 372 <intent-filter> 373 <category android:name="android.intent.category.TEST" /> 374 </intent-filter> 375 </activity> 376 377 <!-- Stub service used to keep our process alive long enough for 378 background threads to finish their operations. --> 379 <service 380 android:name=".common.util.EmptyService" 381 android:exported="false" /> 382 383 <!-- Service to save a contact --> 384 <service 385 android:name=".ContactSaveService" 386 android:exported="false" /> 387 388 <!-- Attaches a photo to a contact. Started from external applications --> 389 <activity android:name=".activities.AttachPhotoActivity" 390 android:label="@string/attach_photo_dialog_title" 391 android:taskAffinity=""> 392 <intent-filter> 393 <action android:name="android.intent.action.ATTACH_DATA" /> 394 <data android:mimeType="image/*" /> 395 <category android:name="android.intent.category.DEFAULT" /> 396 </intent-filter> 397 </activity> 398 399 <!-- 400 Internal photo selection activity. This activity handles all configuration changes by 401 itself. 402 --> 403 <activity android:name=".activities.PhotoSelectionActivity" 404 android:theme="@style/Theme.PhotoSelector" 405 android:launchMode="singleTop" 406 android:windowSoftInputMode="stateUnchanged" 407 android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize" 408 > 409 </activity> 410 411 <!-- vCard related --> 412 <activity android:name=".common.vcard.ImportVCardActivity" 413 android:configChanges="orientation|screenSize|keyboardHidden" 414 android:theme="@style/BackgroundOnlyTheme"> 415 <intent-filter> 416 <action android:name="android.intent.action.VIEW" /> 417 <data android:mimeType="text/directory" /> 418 <data android:mimeType="text/vcard" /> 419 <data android:mimeType="text/x-vcard" /> 420 <category android:name="android.intent.category.DEFAULT" /> 421 </intent-filter> 422 </activity> 423 424 <activity android:name=".common.vcard.NfcImportVCardActivity" 425 android:configChanges="orientation|screenSize|keyboardHidden" 426 android:theme="@style/BackgroundOnlyTheme"> 427 <intent-filter> 428 <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 429 <data android:mimeType="text/vcard" /> 430 <data android:mimeType="text/x-vcard" /> 431 <category android:name="android.intent.category.DEFAULT" /> 432 </intent-filter> 433 </activity> 434 435 <activity android:name=".common.vcard.CancelActivity" 436 android:theme="@style/BackgroundOnlyTheme" /> 437 438 <activity android:name=".common.vcard.SelectAccountActivity" 439 android:theme="@style/BackgroundOnlyTheme" /> 440 441 <activity android:name=".common.vcard.ExportVCardActivity" 442 android:theme="@style/BackgroundOnlyTheme" /> 443 444 <service 445 android:name=".common.vcard.VCardService" 446 android:exported="false" /> 447 448 <!-- Pinned header list demo --> 449 <activity android:name=".widget.PinnedHeaderListDemoActivity"> 450 <intent-filter> 451 <action android:name="android.intent.action.MAIN" /> 452 <category android:name="android.intent.category.DEFAULT" /> 453 </intent-filter> 454 </activity> 455 456 <!-- The widget that shows details and the social stream of a contact --> 457 <receiver android:name=".socialwidget.SocialWidgetProvider" 458 android:label="@string/social_widget_label" > 459 <intent-filter> 460 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 461 </intent-filter> 462 <meta-data android:name="android.appwidget.provider" 463 android:resource="@xml/social_widget_info" /> 464 </receiver> 465 466 <activity 467 android:name=".socialwidget.SocialWidgetConfigureActivity" 468 android:theme="@android:style/Theme.Translucent.NoTitleBar" > 469 <intent-filter> 470 <action android:name="android.intent.action.APPWIDGET_PICK" /> 471 </intent-filter> 472 </activity> 473 474 <!-- Intercept Dialer Intents for devices without a phone. 475 This activity should have the same intent filters as the DialtactsActivity, 476 so that its capturing the same events. Omit android.intent.category.LAUNCHER, because 477 we don't want this to show up in the Launcher. The priorities of the intent-filters 478 are set lower, so that the user does not see a disambig dialog --> 479 <activity 480 android:name="com.android.contacts.NonPhoneActivity" 481 android:theme="@style/NonPhoneActivityTheme" 482 > 483 <intent-filter android:priority="-1"> 484 <action android:name="android.intent.action.DIAL"/> 485 <category android:name="android.intent.category.DEFAULT"/> 486 <category android:name="android.intent.category.BROWSABLE"/> 487 <data android:mimeType="vnd.android.cursor.item/phone"/> 488 <data android:mimeType="vnd.android.cursor.item/person"/> 489 </intent-filter> 490 <intent-filter android:priority="-1"> 491 <action android:name="android.intent.action.DIAL"/> 492 <category android:name="android.intent.category.DEFAULT"/> 493 <category android:name="android.intent.category.BROWSABLE"/> 494 <data android:scheme="voicemail"/> 495 </intent-filter> 496 <intent-filter android:priority="-1"> 497 <action android:name="android.intent.action.DIAL"/> 498 <category android:name="android.intent.category.DEFAULT"/> 499 </intent-filter> 500 <intent-filter android:priority="-1"> 501 <action android:name="android.intent.action.MAIN"/> 502 <category android:name="android.intent.category.DEFAULT"/> 503 <category android:name="android.intent.category.BROWSABLE"/> 504 </intent-filter> 505 <intent-filter android:priority="-1"> 506 <action android:name="android.intent.action.VIEW"/> 507 <action android:name="android.intent.action.DIAL"/> 508 <category android:name="android.intent.category.DEFAULT"/> 509 <category android:name="android.intent.category.BROWSABLE"/> 510 <data android:scheme="tel"/> 511 </intent-filter> 512 <intent-filter android:priority="-1"> 513 <action android:name="android.intent.action.VIEW"/> 514 <category android:name="android.intent.category.DEFAULT"/> 515 <category android:name="android.intent.category.BROWSABLE"/> 516 <data android:mimeType="vnd.android.cursor.dir/calls"/> 517 </intent-filter> 518 <intent-filter android:priority="-1"> 519 <action android:name="android.intent.action.CALL_BUTTON"/> 520 <category android:name="android.intent.category.DEFAULT"/> 521 <category android:name="android.intent.category.BROWSABLE"/> 522 </intent-filter> 523 </activity> 524 525 <!-- Service that is exclusively for the Phone application that sends out a view 526 notification. This service might be removed in future versions of the app. 527 528 This is called explicitly by the phone app via package name and class. 529 (PhoneUtils.sendViewNotificationAsync()). If this service moves, then phone 530 needs to be changed as well. 531 --> 532 <service android:name=".ViewNotificationService" 533 android:permission="android.permission.WRITE_CONTACTS" 534 android:exported="true"> 535 <intent-filter> 536 <action android:name="com.android.contacts.VIEW_NOTIFICATION"/> 537 <data android:mimeType="vnd.android.cursor.item/contact"/> 538 </intent-filter> 539 </service> 540 541 <meta-data android:name="android.nfc.disable_beam_default" android:value="true" /> 542 </application> 543</manifest> 544