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