| <?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" |
| android:theme="@android:style/Theme.Light.Holo" |
| > |
| <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> |
| <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:theme="@android:style/Theme" |
| android:exported="true" |
| > |
| </activity> |
| <activity |
| android:name=".activity.setup.AccountSetupAccountType" |
| android:label="@string/account_setup_account_type_title" |
| android:theme="@android:style/Theme" |
| > |
| </activity> |
| <activity |
| android:name=".activity.setup.AccountSetupIncoming" |
| android:label="@string/account_setup_incoming_title" |
| android:theme="@android:style/Theme" |
| > |
| </activity> |
| <activity |
| android:name=".activity.setup.AccountSetupOutgoing" |
| android:label="@string/account_setup_outgoing_title" |
| android:theme="@android:style/Theme" |
| > |
| </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:theme="@android:style/Theme" |
| android:configChanges="keyboardHidden|orientation" |
| > |
| </activity> |
| <!--EXCHANGE-REMOVE-SECTION-END--> |
| <activity |
| android:name=".activity.setup.AccountSetupOptions" |
| android:label="@string/account_setup_options_title" |
| android:theme="@android:style/Theme" |
| > |
| </activity> |
| <activity |
| android:name=".activity.setup.AccountSetupNames" |
| android:label="@string/account_setup_names_title" |
| android:theme="@android:style/Theme" |
| > |
| </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:theme="@android:style/Theme" |
| android:configChanges="keyboardHidden|orientation" |
| > |
| </activity> |
| <activity |
| android:name=".activity.setup.AccountSettings" |
| android:label="@string/account_settings_action" |
| android:theme="@android:style/Theme" |
| > |
| <intent-filter> |
| <action android:name="com.android.email.activity.setup.ACCOUNT_MANAGER_ENTRY" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| <!-- STOPSHIP - AccountSettingsXL is a parallel implementation and eventually |
| it simply replaces activity.setup.AccountSettings --> |
| <activity |
| android:name=".activity.setup.AccountSettingsXL" |
| android:label="@string/account_settings_action" |
| > |
| </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" |
| > |
| </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" |
| > |
| </activity> |
| |
| <activity |
| android:name=".activity.MessageList" |
| android:theme="@style/ThemeNoTitleBar" |
| > |
| </activity> |
| <activity |
| android:name=".activity.MessageListXL" |
| > |
| </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" |
| > |
| </activity> |
| <activity |
| android:name=".activity.MessageFileView" |
| > |
| <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> |
| |
| <service |
| android:name=".Controller$ControllerService" |
| android:enabled="true" |
| > |
| </service> |
| |
| <service |
| android:name=".service.AttachmentDownloadService" |
| 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 ExchangeService as a separate process --> |
| <service |
| android:name="com.android.exchange.ExchangeService" |
| 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> |