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