32358f5516
Change-Id: I67eaeb50ba8629a85d056da031e3b48ea7ab3858
425 lines
19 KiB
XML
425 lines
19 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- Copyright (C) 2008 The Android Open Source Project
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="com.android.email">
|
|
|
|
<original-package android:name="com.android.email" />
|
|
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
|
<uses-permission android:name="android.permission.READ_CONTACTS"/>
|
|
<uses-permission android:name="android.permission.READ_OWNER_DATA"/>
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
<uses-permission android:name="android.permission.INTERNET"/>
|
|
<uses-permission android:name="android.permission.VIBRATE"/>
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
|
|
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
|
|
|
|
<!-- For EAS purposes; could be removed when EAS has a permanent home -->
|
|
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
|
|
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
|
|
<uses-permission android:name="android.permission.READ_CALENDAR"/>
|
|
|
|
<!-- Only required if a store implements push mail and needs to keep network open -->
|
|
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
|
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
|
|
|
<!-- Grant permission to other apps to view attachments -->
|
|
<permission android:name="com.android.email.permission.READ_ATTACHMENT"
|
|
android:permissionGroup="android.permission-group.MESSAGES"
|
|
android:protectionLevel="dangerous"
|
|
android:label="@string/read_attachment_label"
|
|
android:description="@string/read_attachment_desc"/>
|
|
<uses-permission android:name="com.android.email.permission.READ_ATTACHMENT"/>
|
|
|
|
<!-- Grant permission to system apps to access provider (see provider below) -->
|
|
<permission android:name="com.android.email.permission.ACCESS_PROVIDER"
|
|
android:protectionLevel="signatureOrSystem"
|
|
android:label="@string/permission_access_provider_label"
|
|
android:description="@string/permission_access_provider_desc"/>
|
|
<uses-permission android:name="com.android.email.permission.ACCESS_PROVIDER"/>
|
|
|
|
<application android:icon="@drawable/icon" android:label="@string/app_name"
|
|
android:name="Email">
|
|
<activity
|
|
android:name=".activity.Welcome">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
</activity>
|
|
<!--
|
|
We show this on the home for the development purpose.
|
|
STOPSHIP: Remove label, and MAIN/LAUNCHER intent filter.
|
|
-->
|
|
<activity
|
|
android:name=".activity.MessageListXL"
|
|
android:label="@string/activity_label_2pane"
|
|
android:theme="@android:style/Theme.WithActionBar"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.UpgradeAccounts"
|
|
android:label="@string/upgrade_accounts_title"
|
|
android:theme="@android:style/Theme.NoTitleBar"
|
|
android:configChanges="keyboardHidden|orientation" >
|
|
</activity>
|
|
<!-- Must be exported in order for the AccountManager to launch it -->
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupBasics"
|
|
android:label="@string/account_setup_basics_title"
|
|
android:exported="true"
|
|
>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupAccountType"
|
|
android:label="@string/account_setup_account_type_title"
|
|
>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupIncoming"
|
|
android:label="@string/account_setup_incoming_title"
|
|
>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupOutgoing"
|
|
android:label="@string/account_setup_outgoing_title"
|
|
>
|
|
</activity>
|
|
<!--EXCHANGE-REMOVE-SECTION-START-->
|
|
<!-- This activity ignores configuration changes (e.g. rotation) so that it will
|
|
not make multiple calls to AccountSetupCheckSettings. -->
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupExchange"
|
|
android:label="@string/account_setup_exchange_title"
|
|
android:configChanges="keyboardHidden|orientation"
|
|
>
|
|
</activity>
|
|
<!--EXCHANGE-REMOVE-SECTION-END-->
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupOptions"
|
|
android:label="@string/account_setup_options_title"
|
|
>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupNames"
|
|
android:label="@string/account_setup_names_title"
|
|
>
|
|
</activity>
|
|
<!-- XXX Note: this activity is hacked to ignore config changes,
|
|
since it doesn't currently handle them correctly in code. -->
|
|
<activity
|
|
android:name=".activity.setup.AccountSetupCheckSettings"
|
|
android:label="@string/account_setup_check_settings_title"
|
|
android:configChanges="keyboardHidden|orientation"
|
|
>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.setup.AccountSettings"
|
|
android:label="@string/account_settings_action"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="com.android.email.activity.setup.ACCOUNT_MANAGER_ENTRY" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.setup.AccountSecurity"
|
|
android.label="@string/account_security_title"
|
|
>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activity.Debug"
|
|
android:label="@string/debug_title">
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.AccountFolderList"
|
|
android:launchMode="singleTop"
|
|
android:theme="@android:style/Theme.WithActionBar" >
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activity.AccountShortcutPicker"
|
|
android:label="@string/app_name"
|
|
android:enabled="false"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.CREATE_SHORTCUT" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activity.MailboxList"
|
|
android:theme="@android:style/Theme.WithActionBar" >
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activity.MessageList"
|
|
android:theme="@style/ThemeNoTitleBar">
|
|
<intent-filter>
|
|
<!-- This action is only to allow an entry point for launcher shortcuts -->
|
|
<action android:name="android.intent.action.MAIN" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<!--
|
|
This activity catches shortcuts to account created on Android 1.6 and before,
|
|
and redirects to MessageList.
|
|
singleTask is necessary to make sure the activity is really launched.
|
|
Without it, the framework brings up the app to front, but doesn't necessarily
|
|
launch the activity.
|
|
-->
|
|
<activity
|
|
android:name=".activity.FolderMessageList"
|
|
android:launchMode="singleTask"
|
|
>
|
|
<intent-filter>
|
|
<!-- This action is only to allow an entry point for launcher shortcuts -->
|
|
<action android:name="android.intent.action.MAIN" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activity.MessageView"
|
|
android:theme="@android:style/Theme.NoTitleBar" >
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.MessageFileView"
|
|
android:theme="@android:style/Theme.NoTitleBar" >
|
|
<intent-filter android:label="@string/app_name">
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<data android:mimeType="application/eml" />
|
|
<data android:mimeType="message/rfc822" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".activity.MessageCompose"
|
|
android:label="@string/app_name"
|
|
android:enabled="false"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<action android:name="android.intent.action.SENDTO" />
|
|
<data android:scheme="mailto" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
</intent-filter>
|
|
<intent-filter android:label="@string/app_name">
|
|
<action android:name="android.intent.action.SEND" />
|
|
<data android:mimeType="*/*" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
<intent-filter android:label="@string/app_name">
|
|
<action android:name="android.intent.action.SEND_MULTIPLE" />
|
|
<data android:mimeType="*/*" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
<!--EXCHANGE-REMOVE-SECTION-START-->
|
|
<receiver android:name="com.android.exchange.EmailSyncAlarmReceiver"/>
|
|
<receiver android:name="com.android.exchange.MailboxAlarmReceiver"/>
|
|
<!--EXCHANGE-REMOVE-SECTION-END-->
|
|
|
|
<receiver android:name=".service.EmailBroadcastReceiver" android:enabled="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
|
<action android:name="android.intent.action.DEVICE_STORAGE_LOW" />
|
|
<action android:name="android.intent.action.DEVICE_STORAGE_OK" />
|
|
</intent-filter>
|
|
<!-- To handle secret code to activate the debug screen. -->
|
|
<intent-filter>
|
|
<action android:name="android.provider.Telephony.SECRET_CODE" />
|
|
<!-- "36245" = "email" -->
|
|
<data android:scheme="android_secret_code" android:host="36245" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<service android:name=".service.EmailBroadcastProcessorService" />
|
|
|
|
<!-- Support for DeviceAdmin / DevicePolicyManager. See SecurityPolicy class for impl. -->
|
|
<receiver
|
|
android:name=".SecurityPolicy$PolicyAdmin"
|
|
android:label="@string/device_admin_label"
|
|
android:description="@string/device_admin_description"
|
|
android:permission="android.permission.BIND_DEVICE_ADMIN" >
|
|
<meta-data
|
|
android:name="android.app.device_admin"
|
|
android:resource="@xml/device_admin" />
|
|
<intent-filter>
|
|
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<service
|
|
android:name=".service.MailService"
|
|
android:enabled="false"
|
|
>
|
|
</service>
|
|
|
|
<!--EXCHANGE-REMOVE-SECTION-START-->
|
|
<!--Required stanza to register the PopImapAuthenticatorService with AccountManager -->
|
|
<service
|
|
android:name=".service.PopImapAuthenticatorService"
|
|
android:exported="true"
|
|
android:enabled="true"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.accounts.AccountAuthenticator" />
|
|
</intent-filter>
|
|
<meta-data
|
|
android:name="android.accounts.AccountAuthenticator"
|
|
android:resource="@xml/pop_imap_authenticator"
|
|
/>
|
|
</service>
|
|
|
|
<!--Required stanza to register the PopImapSyncAdapterService with SyncManager -->
|
|
<service
|
|
android:name="com.android.email.service.PopImapSyncAdapterService"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.content.SyncAdapter" />
|
|
</intent-filter>
|
|
<meta-data android:name="android.content.SyncAdapter"
|
|
android:resource="@xml/syncadapter_pop_imap" />
|
|
</service>
|
|
|
|
<!--EXCHANGE-REMOVE-SECTION-START-->
|
|
<!--Required stanza to register the EAS EmailSyncAdapterService with SyncManager -->
|
|
<service
|
|
android:name="com.android.exchange.EmailSyncAdapterService"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.content.SyncAdapter" />
|
|
</intent-filter>
|
|
<meta-data android:name="android.content.SyncAdapter"
|
|
android:resource="@xml/syncadapter_email" />
|
|
</service>
|
|
|
|
<!--Required stanza to register the EAS ContactsSyncAdapterService with SyncManager -->
|
|
<service
|
|
android:name="com.android.exchange.ContactsSyncAdapterService"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.content.SyncAdapter" />
|
|
</intent-filter>
|
|
<meta-data android:name="android.content.SyncAdapter"
|
|
android:resource="@xml/syncadapter_contacts" />
|
|
</service>
|
|
|
|
<!--Required stanza to register the EAS CalendarSyncAdapterService with SyncManager -->
|
|
<service
|
|
android:name="com.android.exchange.CalendarSyncAdapterService"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.content.SyncAdapter" />
|
|
</intent-filter>
|
|
<meta-data android:name="android.content.SyncAdapter"
|
|
android:resource="@xml/syncadapter_calendar" />
|
|
</service>
|
|
|
|
<!-- Add android:process=":remote" below to enable SyncManager as a separate process -->
|
|
<service
|
|
android:name="com.android.exchange.SyncManager"
|
|
android:enabled="true"
|
|
>
|
|
</service>
|
|
|
|
<!--Required stanza to register the EasAuthenticatorService with AccountManager -->
|
|
<service
|
|
android:name=".service.EasAuthenticatorService"
|
|
android:exported="true"
|
|
android:enabled="true"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.accounts.AccountAuthenticator" />
|
|
</intent-filter>
|
|
<meta-data
|
|
android:name="android.accounts.AccountAuthenticator"
|
|
android:resource="@xml/eas_authenticator"
|
|
/>
|
|
</service>
|
|
<!--
|
|
EasAuthenticatorService with the altenative label. Disabled by default,
|
|
and OneTimeInitializer enables it if the vendor policy tells so.
|
|
-->
|
|
<service
|
|
android:name=".service.EasAuthenticatorServiceAlternate"
|
|
android:exported="true"
|
|
android:enabled="false"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.accounts.AccountAuthenticator" />
|
|
</intent-filter>
|
|
<meta-data
|
|
android:name="android.accounts.AccountAuthenticator"
|
|
android:resource="@xml/authenticator_alternate"
|
|
/>
|
|
</service>
|
|
<!--EXCHANGE-REMOVE-SECTION-END-->
|
|
|
|
<provider
|
|
android:name=".provider.AttachmentProvider"
|
|
android:authorities="com.android.email.attachmentprovider"
|
|
android:multiprocess="true"
|
|
android:grantUriPermissions="true"
|
|
android:readPermission="com.android.email.permission.READ_ATTACHMENT"
|
|
/>
|
|
|
|
<!-- This provider MUST be protected by strict permissions, as granting access to
|
|
it exposes user passwords and other confidential information. -->
|
|
<provider
|
|
android:name=".provider.EmailProvider"
|
|
android:authorities="com.android.email.provider"
|
|
android:multiprocess="true"
|
|
android:permission="com.android.email.permission.ACCESS_PROVIDER"
|
|
android:label="@string/app_name"
|
|
/>
|
|
|
|
<!--EXCHANGE-REMOVE-SECTION-START-->
|
|
<!-- In this release, GAL information is used locally only, so we used the same
|
|
strict permissions. -->
|
|
<!-- NOTE: ExchangeDirectoryProvider will replace ExchangeProvider after integration with
|
|
the new GAL/contacts implementation -->
|
|
<provider
|
|
android:name="com.android.exchange.provider.ExchangeProvider"
|
|
android:authorities="com.android.exchange.provider"
|
|
android:multiprocess="true"
|
|
android:permission="com.android.email.permission.ACCESS_PROVIDER"
|
|
/>
|
|
<provider
|
|
android:name="com.android.exchange.provider.ExchangeDirectoryProvider"
|
|
android:authorities="com.android.exchange.directory.provider"
|
|
android:readPermission="android.permission.READ_CONTACTS"
|
|
android:multiprocess="false"
|
|
>
|
|
<meta-data android:name="android.content.ContactDirectory" android:value="true"/>
|
|
</provider>
|
|
<!--EXCHANGE-REMOVE-SECTION-END-->
|
|
|
|
</application>
|
|
</manifest>
|