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 xmlns:android="http://schemas.android.com/apk/res/android" 18 package="com.android.email"> 19 20 <original-package android:name="com.android.email" /> 21 22 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 23 <uses-permission android:name="android.permission.READ_CONTACTS"/> 24 <uses-permission android:name="android.permission.READ_OWNER_DATA"/> 25 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 26 <uses-permission android:name="android.permission.INTERNET"/> 27 <uses-permission android:name="android.permission.VIBRATE"/> 28 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 29 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 30 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 31 <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 32 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> 33 <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 34 35 <!-- For EAS purposes; could be removed when EAS has a permanent home --> 36 <uses-permission android:name="android.permission.WRITE_CONTACTS"/> 37 <uses-permission android:name="android.permission.WRITE_CALENDAR"/> 38 <uses-permission android:name="android.permission.READ_CALENDAR"/> 39 40 <!-- Only required if a store implements push mail and needs to keep network open --> 41 <uses-permission android:name="android.permission.WAKE_LOCK"/> 42 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 43 44 <!-- Grant permission to other apps to view attachments --> 45 <permission android:name="com.android.email.permission.READ_ATTACHMENT" 46 android:permissionGroup="android.permission-group.MESSAGES" 47 android:protectionLevel="dangerous" 48 android:label="@string/read_attachment_label" 49 android:description="@string/read_attachment_desc"/> 50 <uses-permission android:name="com.android.email.permission.READ_ATTACHMENT"/> 51 52 <!-- Grant permission to system apps to access provider (see provider below) --> 53 <permission android:name="com.android.email.permission.ACCESS_PROVIDER" 54 android:protectionLevel="signatureOrSystem" 55 android:label="@string/permission_access_provider_label" 56 android:description="@string/permission_access_provider_desc"/> 57 <uses-permission android:name="com.android.email.permission.ACCESS_PROVIDER"/> 58 59 <application android:icon="@drawable/icon" android:label="@string/app_name" 60 android:name="Email"> 61 <activity 62 android:name=".activity.Welcome"> 63 <intent-filter> 64 <action android:name="android.intent.action.MAIN" /> 65 <category android:name="android.intent.category.DEFAULT" /> 66 <category android:name="android.intent.category.LAUNCHER" /> 67 </intent-filter> 68 </activity> 69 <activity 70 android:name=".activity.UpgradeAccounts" 71 android:label="@string/upgrade_accounts_title" 72 android:theme="@android:style/Theme.NoTitleBar" 73 android:configChanges="keyboardHidden|orientation" > 74 </activity> 75 <!-- Must be exported in order for the AccountManager to launch it --> 76 <activity 77 android:name=".activity.setup.AccountSetupBasics" 78 android:label="@string/account_setup_basics_title" 79 android:exported="true" 80 > 81 </activity> 82 <activity 83 android:name=".activity.setup.AccountSetupAccountType" 84 android:label="@string/account_setup_account_type_title" 85 > 86 </activity> 87 <activity 88 android:name=".activity.setup.AccountSetupIncoming" 89 android:label="@string/account_setup_incoming_title" 90 > 91 </activity> 92 <activity 93 android:name=".activity.setup.AccountSetupOutgoing" 94 android:label="@string/account_setup_outgoing_title" 95 > 96 </activity> 97 <!--EXCHANGE-REMOVE-SECTION-START--> 98 <!-- This activity ignores configuration changes (e.g. rotation) so that it will 99 not make multiple calls to AccountSetupCheckSettings. --> 100 <activity 101 android:name=".activity.setup.AccountSetupExchange" 102 android:label="@string/account_setup_exchange_title" 103 android:configChanges="keyboardHidden|orientation" 104 > 105 </activity> 106 <!--EXCHANGE-REMOVE-SECTION-END--> 107 <activity 108 android:name=".activity.setup.AccountSetupOptions" 109 android:label="@string/account_setup_options_title" 110 > 111 </activity> 112 <activity 113 android:name=".activity.setup.AccountSetupNames" 114 android:label="@string/account_setup_names_title" 115 > 116 </activity> 117 <!-- XXX Note: this activity is hacked to ignore config changes, 118 since it doesn't currently handle them correctly in code. --> 119 <activity 120 android:name=".activity.setup.AccountSetupCheckSettings" 121 android:label="@string/account_setup_check_settings_title" 122 android:configChanges="keyboardHidden|orientation" 123 > 124 </activity> 125 <activity 126 android:name=".activity.setup.AccountSettings" 127 android:label="@string/account_settings_action" 128 > 129 <intent-filter> 130 <action android:name="com.android.email.activity.setup.ACCOUNT_MANAGER_ENTRY" /> 131 <category android:name="android.intent.category.DEFAULT" /> 132 </intent-filter> 133 </activity> 134 <activity 135 android:name=".activity.setup.AccountSecurity" 136 android.label="@string/account_security_title" 137 > 138 </activity> 139 140 <activity 141 android:name=".activity.Debug" 142 android:label="@string/debug_title"> 143 </activity> 144 <activity 145 android:name=".activity.AccountFolderList" 146 android:launchMode="singleTop" > 147 </activity> 148 149 <activity 150 android:name=".activity.AccountShortcutPicker" 151 android:label="@string/app_name" 152 android:enabled="false" 153 > 154 <intent-filter> 155 <action android:name="android.intent.action.CREATE_SHORTCUT" /> 156 <category android:name="android.intent.category.DEFAULT" /> 157 </intent-filter> 158 </activity> 159 160 <activity 161 android:name=".activity.MailboxList" 162 android:theme="@style/ThemeNoTitleBar"> 163 </activity> 164 165 <activity 166 android:name=".activity.MessageList" 167 android:theme="@style/ThemeNoTitleBar"> 168 <intent-filter> 169 <!-- This action is only to allow an entry point for launcher shortcuts --> 170 <action android:name="android.intent.action.MAIN" /> 171 </intent-filter> 172 </activity> 173 174 <!-- 175 This activity catches shortcuts to account created on Android 1.6 and before, 176 and redirects to MessageList. 177 singleTask is necessary to make sure the activity is really launched. 178 Without it, the framework brings up the app to front, but doesn't necessarily 179 launch the activity. 180 --> 181 <activity 182 android:name=".activity.FolderMessageList" 183 android:launchMode="singleTask" 184 > 185 <intent-filter> 186 <!-- This action is only to allow an entry point for launcher shortcuts --> 187 <action android:name="android.intent.action.MAIN" /> 188 </intent-filter> 189 </activity> 190 191 <activity 192 android:name=".activity.MessageView" 193 android:theme="@android:style/Theme.NoTitleBar" > 194 </activity> 195 <activity 196 android:name=".activity.MessageCompose" 197 android:label="@string/app_name" 198 android:enabled="false" 199 > 200 <intent-filter> 201 <action android:name="android.intent.action.VIEW" /> 202 <action android:name="android.intent.action.SENDTO" /> 203 <data android:scheme="mailto" /> 204 <category android:name="android.intent.category.DEFAULT" /> 205 <category android:name="android.intent.category.BROWSABLE" /> 206 </intent-filter> 207 <intent-filter android:label="@string/app_name"> 208 <action android:name="android.intent.action.SEND" /> 209 <data android:mimeType="*/*" /> 210 <category android:name="android.intent.category.DEFAULT" /> 211 </intent-filter> 212 <intent-filter android:label="@string/app_name"> 213 <action android:name="android.intent.action.SEND_MULTIPLE" /> 214 <data android:mimeType="*/*" /> 215 <category android:name="android.intent.category.DEFAULT" /> 216 </intent-filter> 217 </activity> 218 <!--EXCHANGE-REMOVE-SECTION-START--> 219 <receiver android:name="com.android.exchange.EmailSyncAlarmReceiver"/> 220 <receiver android:name="com.android.exchange.MailboxAlarmReceiver"/> 221 <receiver android:name="com.android.exchange.BootReceiver" android:enabled="true"> 222 <intent-filter> 223 <action android:name="android.intent.action.BOOT_COMPLETED" /> 224 </intent-filter> 225 </receiver> 226 <!--EXCHANGE-REMOVE-SECTION-END--> 227 228 <receiver android:name=".service.BootReceiver" android:enabled="true"> 229 <intent-filter> 230 <action android:name="android.intent.action.BOOT_COMPLETED" /> 231 </intent-filter> 232 <intent-filter> 233 <action android:name="android.intent.action.DEVICE_STORAGE_LOW" /> 234 </intent-filter> 235 <intent-filter> 236 <action android:name="android.intent.action.DEVICE_STORAGE_OK" /> 237 </intent-filter> 238 </receiver> 239 240 <!-- Support for DeviceAdmin / DevicePolicyManager. See SecurityPolicy class for impl. --> 241 <receiver 242 android:name=".SecurityPolicy$PolicyAdmin" 243 android:label="@string/device_admin_label" 244 android:description="@string/device_admin_description" 245 android:permission="android.permission.BIND_DEVICE_ADMIN" > 246 <meta-data 247 android:name="android.app.device_admin" 248 android:resource="@xml/device_admin" /> 249 <intent-filter> 250 <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 251 </intent-filter> 252 </receiver> 253 254 <receiver 255 android:name=".OneTimeInitializer" 256 android:enabled="true" 257 > 258 <intent-filter> 259 <action android:name="android.intent.action.BOOT_COMPLETED" /> 260 </intent-filter> 261 </receiver> 262 263 <service 264 android:name=".service.MailService" 265 android:enabled="false" 266 > 267 </service> 268 269 <!--EXCHANGE-REMOVE-SECTION-START--> 270 <!--Required stanza to register the ContactsSyncAdapterService with SyncManager --> 271 <service 272 android:name="com.android.exchange.ContactsSyncAdapterService" 273 android:exported="true"> 274 <intent-filter> 275 <action android:name="android.content.SyncAdapter" /> 276 </intent-filter> 277 <meta-data android:name="android.content.SyncAdapter" 278 android:resource="@xml/syncadapter_contacts" /> 279 </service> 280 281 <!--Required stanza to register the CalendarSyncAdapterService with SyncManager --> 282 <service 283 android:name="com.android.exchange.CalendarSyncAdapterService" 284 android:exported="true"> 285 <intent-filter> 286 <action android:name="android.content.SyncAdapter" /> 287 </intent-filter> 288 <meta-data android:name="android.content.SyncAdapter" 289 android:resource="@xml/syncadapter_calendar" /> 290 </service> 291 292 <!-- Add android:process=":remote" below to enable SyncManager as a separate process --> 293 <service 294 android:name="com.android.exchange.SyncManager" 295 android:enabled="true" 296 > 297 </service> 298 299 <!--Required stanza to register the EasAuthenticatorService with AccountManager --> 300 <service 301 android:name=".service.EasAuthenticatorService" 302 android:exported="true" 303 android:enabled="true" 304 > 305 <intent-filter> 306 <action android:name="android.accounts.AccountAuthenticator" /> 307 </intent-filter> 308 <meta-data 309 android:name="android.accounts.AccountAuthenticator" 310 android:resource="@xml/authenticator" 311 /> 312 </service> 313 <!-- 314 EasAuthenticatorService with the altenative label. Disabled by default, 315 and OneTimeInitializer enables it if the vendor policy tells so. 316 --> 317 <service 318 android:name=".service.EasAuthenticatorServiceAlternate" 319 android:exported="true" 320 android:enabled="false" 321 > 322 <intent-filter> 323 <action android:name="android.accounts.AccountAuthenticator" /> 324 </intent-filter> 325 <meta-data 326 android:name="android.accounts.AccountAuthenticator" 327 android:resource="@xml/authenticator_alternate" 328 /> 329 </service> 330 <!--EXCHANGE-REMOVE-SECTION-END--> 331 332 <provider 333 android:name=".provider.AttachmentProvider" 334 android:authorities="com.android.email.attachmentprovider" 335 android:multiprocess="true" 336 android:grantUriPermissions="true" 337 android:readPermission="com.android.email.permission.READ_ATTACHMENT" 338 /> 339 340 <!-- This provider MUST be protected by strict permissions, as granting access to 341 it exposes user passwords and other confidential information. --> 342 <provider 343 android:name=".provider.EmailProvider" 344 android:authorities="com.android.email.provider" 345 android:multiprocess="true" 346 android:permission="com.android.email.permission.ACCESS_PROVIDER" 347 /> 348 349 <!--EXCHANGE-REMOVE-SECTION-START--> 350 <!-- In this release, GAL information is used locally only, so we used the same 351 strict permissions. --> 352 <provider 353 android:name="com.android.exchange.provider.ExchangeProvider" 354 android:authorities="com.android.exchange.provider" 355 android:multiprocess="true" 356 android:permission="com.android.email.permission.ACCESS_PROVIDER" 357 /> 358 <!--EXCHANGE-REMOVE-SECTION-END--> 359 360 </application> 361 </manifest> 362