Store.javaAPI DocAndroid 1.5 API3774Wed May 06 22:42:46 BST


public abstract class Store extends Object
Store is the access point for an email message store. It's location can be local or remote and no specific protocol is defined. Store is intended to loosely model in combination the JavaMail classes javax.mail.Store and javax.mail.Folder along with some additional functionality to improve performance on mobile devices. Implementations of this class should focus on making as few network connections as possible.

Fields Summary
public static final String
String constants for known store schemes.
public static final String
public static final String
public static final int
A global suggestion to Store implementors on how much of the body should be returned on FetchProfile.Item.BODY_SANE requests.
private static HashMap
Constructors Summary
Methods Summary
public abstract voidcheckSettings()

public abstract FoldergetFolder(java.lang.String name)

public static synchronized uri, application)
Get an instance of a mail store. The URI is parsed as a standard URI and the scheme is used to determine which protocol will be used. The following schemes are currently recognized: imap - IMAP with no connection security. Ex: imap://username:password@host/ imap+tls - IMAP with TLS connection security, if the server supports it. Ex: imap+tls://username:password@host imap+tls+ - IMAP with required TLS connection security. Connection fails if TLS is not available. Ex: imap+tls+://username:password@host imap+ssl+ - IMAP with required SSL connection security. Connection fails if SSL is not available. Ex: imap+ssl+://username:password@host

uri The URI of the store.
an initialized store of the appropriate class

        Store store = mStores.get(uri);
        if (store == null) {
            if (uri.startsWith(STORE_SCHEME_IMAP)) {
                store = new ImapStore(uri);
            } else if (uri.startsWith(STORE_SCHEME_POP3)) {
                store = new Pop3Store(uri);
            } else if (uri.startsWith(STORE_SCHEME_LOCAL)) {
                store = new LocalStore(uri, application);

            if (store != null) {
                mStores.put(uri, store);

        if (store == null) {
            throw new MessagingException("Unable to locate an applicable Store for " + uri);

        return store;
public abstract Folder[]getPersonalNamespaces()