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