1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- Copyright (C) 2008 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 18 xmlns:android="http://schemas.android.com/apk/res/android" 19 package="com.android.email" 20 android:versionCode="410000" 21 android:versionName="4.1" 22 > 23 24 <original-package 25 android:name="com.android.email" /> 26 27 <uses-permission 28 android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 29 <uses-permission 30 android:name="android.permission.ACCESS_NETWORK_STATE"/> 31 <uses-permission 32 android:name="android.permission.INTERNET"/> 33 <uses-permission 34 android:name="android.permission.VIBRATE"/> 35 <uses-permission 36 android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 37 <uses-permission 38 android:name="android.permission.GET_ACCOUNTS" /> 39 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> 40 <uses-permission 41 android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 42 <uses-permission 43 android:name="android.permission.READ_SYNC_SETTINGS" /> 44 <uses-permission 45 android:name="android.permission.WRITE_SYNC_SETTINGS"/> 46 47 <uses-permission 48 android:name="android.permission.WRITE_CONTACTS"/> 49 <uses-permission 50 android:name="android.permission.READ_CONTACTS"/> 51 52 <uses-permission 53 android:name="android.permission.READ_PROFILE"/> 54 55 <uses-permission 56 android:name="android.permission.NFC"/> 57 58 <!-- Only required if a store implements push mail and needs to keep network open --> 59 <uses-permission 60 android:name="android.permission.WAKE_LOCK"/> 61 <uses-permission 62 android:name="android.permission.READ_PHONE_STATE"/> 63 64 <!-- Grant permission to other apps to view attachments --> 65 <permission 66 android:name="com.android.email.permission.READ_ATTACHMENT" 67 android:permissionGroup="android.permission-group.MESSAGES" 68 android:protectionLevel="dangerous" 69 android:label="@string/permission_read_attachment_label" 70 android:description="@string/permission_read_attachment_desc"/> 71 <uses-permission 72 android:name="com.android.email.permission.READ_ATTACHMENT"/> 73 74 <uses-permission 75 android:name="android.permission.USE_CREDENTIALS"/> 76 77 <!-- Grant permission to system apps to access provider (see provider below) --> 78 <permission 79 android:name="com.android.email.permission.ACCESS_PROVIDER" 80 android:protectionLevel="signature" 81 android:label="@string/permission_access_provider_label" 82 android:description="@string/permission_access_provider_desc"/> 83 <uses-permission 84 android:name="com.android.email.permission.ACCESS_PROVIDER"/> 85 86 <!-- Note: Actually, android:hardwareAccelerated could be "true", but in order to switch it 87 on/off in the debug screen, we have to set it "false" here and enable it at runtime. --> 88 <application 89 android:icon="@mipmap/ic_launcher_email" 90 android:label="@string/app_name" 91 android:name="Email" 92 android:theme="@style/EmailTheme" 93 android:hardwareAccelerated="false" 94 > 95 <activity 96 android:name=".activity.Welcome" 97 > 98 <intent-filter> 99 <action android:name="android.intent.action.MAIN" /> 100 <category android:name="android.intent.category.DEFAULT" /> 101 <category android:name="android.intent.category.LAUNCHER" /> 102 <category android:name="android.intent.category.APP_EMAIL" /> 103 </intent-filter> 104 <intent-filter> 105 <action android:name="android.intent.action.VIEW" /> 106 <action android:name="android.intent.action.MAIN" /> 107 <category android:name="android.intent.category.DEFAULT" /> 108 <category android:name="android.intent.category.LAUNCHER" /> 109 <data 110 android:scheme="content" 111 android:host="ui.email.android.com" 112 android:path="/view/mailbox" 113 /> 114 </intent-filter> 115 </activity> 116 117 <!-- Must be exported in order for the AccountManager to launch it --> 118 <!-- Also available for continuous test systems to force account creation --> 119 <activity 120 android:name=".activity.setup.AccountSetupBasics" 121 android:label="@string/account_setup_basics_title" 122 android:exported="true" 123 > 124 <intent-filter> 125 <action 126 android:name="com.android.email.CREATE_ACCOUNT" /> 127 <category 128 android:name="android.intent.category.DEFAULT" /> 129 </intent-filter> 130 </activity> 131 <activity 132 android:name=".activity.setup.AccountSetupAccountType" 133 android:label="@string/account_setup_account_type_title" 134 > 135 </activity> 136 <activity 137 android:name=".activity.setup.AccountSetupIncoming" 138 android:label="@string/account_setup_incoming_title" 139 > 140 </activity> 141 <activity 142 android:name=".activity.setup.AccountSetupOutgoing" 143 android:label="@string/account_setup_outgoing_title" 144 > 145 </activity> 146 <activity 147 android:name=".activity.setup.AccountSetupExchange" 148 android:label="@string/account_setup_exchange_title" 149 > 150 </activity> 151 <activity 152 android:name=".activity.setup.AccountSetupOptions" 153 android:label="@string/account_setup_options_title" 154 > 155 </activity> 156 <activity 157 android:name=".activity.setup.AccountSetupNames" 158 android:label="@string/account_setup_names_title" 159 > 160 </activity> 161 <activity 162 android:name=".activity.setup.AccountSettings" 163 android:label="@string/settings_activity_title" 164 android:theme="@android:style/Theme.Holo.Light" 165 > 166 <intent-filter> 167 <action 168 android:name="com.android.email.activity.setup.ACCOUNT_MANAGER_ENTRY" /> 169 <category 170 android:name="android.intent.category.DEFAULT" /> 171 </intent-filter> 172 <intent-filter> 173 <action android:name="android.intent.action.EDIT" /> 174 <category android:name="android.intent.category.DEFAULT" /> 175 <data 176 android:scheme="content" 177 android:host="ui.email.android.com" 178 android:path="/settings" 179 /> 180 </intent-filter> 181 <intent-filter> 182 <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" /> 183 <category android:name="android.intent.category.DEFAULT" /> 184 </intent-filter> 185 </activity> 186 <activity 187 android:name=".activity.setup.AccountSecurity" 188 android.label="@string/account_security_title" 189 > 190 </activity> 191 192 <!-- Don't need to set the title; it will be set programatically --> 193 <activity 194 android:name=".activity.ShortcutPicker" 195 android:enabled="false" 196 android:theme="@android:style/Theme.Holo.Light.DialogWhenLarge" 197 > 198 <intent-filter 199 android:label="@string/account_shortcut_picker_name"> 200 <action 201 android:name="android.intent.action.CREATE_SHORTCUT" /> 202 <category 203 android:name="android.intent.category.DEFAULT" /> 204 </intent-filter> 205 </activity> 206 <activity 207 android:name=".activity.EmailActivity" 208 android:uiOptions="splitActionBarWhenNarrow" 209 > 210 </activity> 211 <activity 212 android:name=".activity.MessageFileView" 213 > 214 <intent-filter 215 android:label="@string/app_name"> 216 <action 217 android:name="android.intent.action.VIEW" /> 218 <data 219 android:mimeType="application/eml" /> 220 <data 221 android:mimeType="message/rfc822" /> 222 <category 223 android:name="android.intent.category.DEFAULT" /> 224 </intent-filter> 225 </activity> 226 <activity 227 android:name=".activity.MessageCompose" 228 android:label="@string/compose_title" 229 android:enabled="false" 230 android:theme="@android:style/Theme.Holo.Light" 231 > 232 <intent-filter> 233 <action 234 android:name="android.intent.action.VIEW" /> 235 <action 236 android:name="android.intent.action.SENDTO" /> 237 <data 238 android:scheme="mailto" /> 239 <category 240 android:name="android.intent.category.DEFAULT" /> 241 <category 242 android:name="android.intent.category.BROWSABLE" /> 243 </intent-filter> 244 <intent-filter 245 android:label="@string/app_name"> 246 <action 247 android:name="android.intent.action.SEND" /> 248 <data 249 android:mimeType="*/*" /> 250 <category 251 android:name="android.intent.category.DEFAULT" /> 252 </intent-filter> 253 <intent-filter 254 android:label="@string/app_name"> 255 <action 256 android:name="android.intent.action.SEND_MULTIPLE" /> 257 <data 258 android:mimeType="*/*" /> 259 <category 260 android:name="android.intent.category.DEFAULT" /> 261 </intent-filter> 262 <intent-filter> 263 <action 264 android:name="com.android.email.intent.action.REPLY" /> 265 </intent-filter> 266 </activity> 267 268 <!-- Only used to support pre-HC shortcuts --> 269 <activity 270 android:name=".activity.MessageList" 271 > 272 <intent-filter> 273 <action android:name="android.intent.action.MAIN" /> 274 </intent-filter> 275 </activity> 276 277 <activity 278 android:name=".activity.setup.MailboxSettings" 279 android:label="@string/mailbox_settings_activity_title" 280 > 281 </activity> 282 283 <receiver 284 android:name=".service.AttachmentDownloadService$Watchdog" 285 android:enabled="true"/> 286 287 <receiver 288 android:name=".service.EmailBroadcastReceiver" 289 android:enabled="true"> 290 <intent-filter> 291 <action 292 android:name="android.intent.action.BOOT_COMPLETED" /> 293 <action 294 android:name="android.intent.action.DEVICE_STORAGE_LOW" /> 295 <action 296 android:name="android.intent.action.DEVICE_STORAGE_OK" /> 297 <action 298 android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" /> 299 </intent-filter> 300 <!-- To handle secret code to activate the debug screen. --> 301 <intent-filter> 302 <action 303 android:name="android.provider.Telephony.SECRET_CODE" /> 304 <!-- "36245" = "email" --> 305 <data 306 android:scheme="android_secret_code" 307 android:host="36245" /> 308 </intent-filter> 309 </receiver> 310 <service 311 android:name=".service.EmailBroadcastProcessorService" /> 312 313 <!-- Support for DeviceAdmin / DevicePolicyManager. See SecurityPolicy class for impl. --> 314 <receiver 315 android:name=".SecurityPolicy$PolicyAdmin" 316 android:label="@string/device_admin_label" 317 android:description="@string/device_admin_description" 318 android:permission="android.permission.BIND_DEVICE_ADMIN" > 319 <meta-data 320 android:name="android.app.device_admin" 321 android:resource="@xml/device_admin" /> 322 <intent-filter> 323 <action 324 android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 325 </intent-filter> 326 </receiver> 327 328 <service 329 android:name=".service.MailService" 330 android:enabled="false" 331 > 332 </service> 333 334 <service 335 android:name=".Controller$ControllerService" 336 android:enabled="true" 337 > 338 </service> 339 340 <service 341 android:name=".service.AttachmentDownloadService" 342 android:enabled="false" 343 > 344 </service> 345 346 <!--Required stanza to register the PopImapAuthenticatorService with AccountManager --> 347 <service 348 android:name=".service.PopImapAuthenticatorService" 349 android:exported="true" 350 android:enabled="true" 351 > 352 <intent-filter> 353 <action 354 android:name="android.accounts.AccountAuthenticator" /> 355 </intent-filter> 356 <meta-data 357 android:name="android.accounts.AccountAuthenticator" 358 android:resource="@xml/pop_imap_authenticator" 359 /> 360 </service> 361 362 <!--Required stanza to register the PopImapSyncAdapterService with SyncManager --> 363 <service 364 android:name="com.android.email.service.PopImapSyncAdapterService" 365 android:exported="true"> 366 <intent-filter> 367 <action 368 android:name="android.content.SyncAdapter" /> 369 </intent-filter> 370 <meta-data android:name="android.content.SyncAdapter" 371 android:resource="@xml/syncadapter_pop_imap" /> 372 </service> 373 374 <!-- Require provider permission to use our Policy and Account services --> 375 <service 376 android:name=".service.PolicyService" 377 android:enabled="true" 378 android:permission="com.android.email.permission.ACCESS_PROVIDER" 379 > 380 <intent-filter> 381 <action 382 android:name="com.android.email.POLICY_INTENT" /> 383 </intent-filter> 384 </service> 385 386 <service 387 android:name=".service.AccountService" 388 android:enabled="true" 389 android:permission="com.android.email.permission.ACCESS_PROVIDER" 390 > 391 <intent-filter> 392 <action 393 android:name="com.android.email.ACCOUNT_INTENT" /> 394 </intent-filter> 395 </service> 396 397 <!--Required stanza to register the EasAuthenticatorService with AccountManager --> 398 <service 399 android:name=".service.EasAuthenticatorService" 400 android:exported="true" 401 android:enabled="true" 402 > 403 <intent-filter> 404 <action 405 android:name="android.accounts.AccountAuthenticator" /> 406 </intent-filter> 407 <meta-data 408 android:name="android.accounts.AccountAuthenticator" 409 android:resource="@xml/eas_authenticator" 410 /> 411 </service> 412 <!--Required stanza to register the EasTestAuthenticatorService with AccountManager --> 413 <service 414 android:name=".service.EasTestAuthenticatorService" 415 android:exported="true" 416 android:enabled="false" 417 > 418 <intent-filter> 419 <action 420 android:name="android.accounts.AccountAuthenticator" /> 421 </intent-filter> 422 <meta-data 423 android:name="android.accounts.AccountAuthenticator" 424 android:resource="@xml/eastest_authenticator" 425 /> 426 </service> 427 <!-- 428 EasAuthenticatorService with the alternative label. Disabled by default, 429 and OneTimeInitializer enables it if the vendor policy tells so. 430 --> 431 <service 432 android:name=".service.EasAuthenticatorServiceAlternate" 433 android:exported="true" 434 android:enabled="false" 435 > 436 <intent-filter> 437 <action 438 android:name="android.accounts.AccountAuthenticator" /> 439 </intent-filter> 440 <meta-data 441 android:name="android.accounts.AccountAuthenticator" 442 android:resource="@xml/authenticator_alternate" 443 /> 444 </service> 445 446 <provider 447 android:name=".provider.AttachmentProvider" 448 android:authorities="com.android.email.attachmentprovider" 449 android:multiprocess="true" 450 android:grantUriPermissions="true" 451 android:readPermission="com.android.email.permission.READ_ATTACHMENT" 452 /> 453 454 <!-- This provider MUST be protected by strict permissions, as granting access to 455 it exposes user passwords and other confidential information. --> 456 <provider 457 android:name=".provider.EmailProvider" 458 android:authorities="com.android.email.provider;com.android.email.notifier" 459 android:multiprocess="true" 460 android:permission="com.android.email.permission.ACCESS_PROVIDER" 461 android:label="@string/app_name" 462 /> 463 464 <!-- Email AppWidget definitions --> 465 <activity 466 android:name=".widget.WidgetConfiguration" 467 android:enabled="false" 468 android:theme="@android:style/Theme.Holo.Light.DialogWhenLarge" 469 > 470 <intent-filter 471 android:label="@string/account_shortcut_picker_name"> 472 <action 473 android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/> 474 <category 475 android:name="android.intent.category.DEFAULT" /> 476 </intent-filter> 477 </activity> 478 <service 479 android:name=".provider.WidgetProvider$WidgetService" 480 android:permission="android.permission.BIND_REMOTEVIEWS" 481 android:exported="false" 482 /> 483 <receiver 484 android:name=".provider.WidgetProvider" > 485 <intent-filter> 486 <action 487 android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 488 </intent-filter> 489 <intent-filter> 490 <action android:name="com.android.email.MESSAGE_LIST_DATASET_CHANGED" /> 491 </intent-filter> 492 <meta-data 493 android:name="android.appwidget.provider" 494 android:resource="@xml/widget_info" /> 495 </receiver> 496 </application> 497 </manifest> 498