Added in API level 5

Email

class Email : ContactsContract.DataColumnsWithJoins, ContactsContract.CommonDataKinds.CommonColumns
kotlin.Any
   ↳ android.provider.ContactsContract.CommonDataKinds.Email

A data kind representing an email address.

You can use all columns defined for ContactsContract.Data as well as the following aliases.

Column aliases

Type Alias Data column
String ADDRESS DATA1 Email address itself.
int TYPE DATA2 Allowed values are:

String LABEL DATA3

Summary

Constants
static String

The email address.

static String

MIME type used when storing this in data table.

static String

The MIME type of CONTENT_URI providing a directory of email addresses.

static String

The display name for the email address

static String

Add this query parameter to a URI to get back row counts grouped by the address book index as cursor extras.

static String

The array of group counts for the corresponding group.

static String

The array of address book index titles, which are returned in the same order as the data in the cursor.

static Int

static Int

static Int

static Int

Inherited constants
Public methods
static CharSequence!
getTypeLabel(res: Resources!, type: Int, label: CharSequence?)

Return a CharSequence that best describes the given type, possibly substituting the given LABEL value for TYPE_CUSTOM.

static Int

Return the string resource that best describes the given TYPE.

Properties
static Uri!

The content:// style URL for email lookup using a filter.

static Uri!

The content:// style URL for looking up data rows by email address.

static Uri!

The content:// style URI for all data records of the CONTENT_ITEM_TYPE MIME type, combined with the associated raw contact and aggregate contact data.

static Uri!

It supports the similar semantics as CONTENT_FILTER_URI and returns the same columns.

static Uri!

URI used for looking up contacts by email on the contact databases of both the calling user and the managed profile that is linked to it.

Constants

ADDRESS

Added in API level 11
static val ADDRESS: String

The email address.

Type: TEXT

Value: "data1"

CONTENT_ITEM_TYPE

Added in API level 5
static val CONTENT_ITEM_TYPE: String

MIME type used when storing this in data table.

Value: "vnd.android.cursor.item/email_v2"

CONTENT_TYPE

Added in API level 5
static val CONTENT_TYPE: String

The MIME type of CONTENT_URI providing a directory of email addresses.

Value: "vnd.android.cursor.dir/email_v2"

DISPLAY_NAME

Added in API level 5
static val DISPLAY_NAME: String

The display name for the email address

Type: TEXT

Value: "data4"

EXTRA_ADDRESS_BOOK_INDEX

static val EXTRA_ADDRESS_BOOK_INDEX: String

Add this query parameter to a URI to get back row counts grouped by the address book index as cursor extras. For most languages it is the first letter of the sort key. This parameter does not affect the main content of the cursor.

Example:
 
  import android.provider.ContactsContract.Contacts;
 
  Uri uri = Contacts.CONTENT_URI.buildUpon()
           .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
           .build();
  Cursor cursor = getContentResolver().query(uri,
           new String[] {Contacts.DISPLAY_NAME},
           null, null, null);
  Bundle bundle = cursor.getExtras();
  if (bundle.containsKey(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES) &&
          bundle.containsKey(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS)) {
      String sections[] =
              bundle.getStringArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES);
      int counts[] = bundle.getIntArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS);
  }
  

Value: "android.provider.extra.ADDRESS_BOOK_INDEX"

EXTRA_ADDRESS_BOOK_INDEX_COUNTS

static val EXTRA_ADDRESS_BOOK_INDEX_COUNTS: String

The array of group counts for the corresponding group. Contains the same number of elements as the EXTRA_ADDRESS_BOOK_INDEX_TITLES array.

TYPE: int[]

Value: "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS"

EXTRA_ADDRESS_BOOK_INDEX_TITLES

static val EXTRA_ADDRESS_BOOK_INDEX_TITLES: String

The array of address book index titles, which are returned in the same order as the data in the cursor.

TYPE: String[]

Value: "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES"

TYPE_HOME

Added in API level 5
static val TYPE_HOME: Int
Value: 1

TYPE_MOBILE

Added in API level 5
static val TYPE_MOBILE: Int
Value: 4

TYPE_OTHER

Added in API level 5
static val TYPE_OTHER: Int
Value: 3

TYPE_WORK

Added in API level 5
static val TYPE_WORK: Int
Value: 2

Public methods

getTypeLabel

Added in API level 5
static fun getTypeLabel(
    res: Resources!,
    type: Int,
    label: CharSequence?
): CharSequence!

Return a CharSequence that best describes the given type, possibly substituting the given LABEL value for TYPE_CUSTOM.

Parameters
label CharSequence?: This value may be null.

getTypeLabelResource

Added in API level 5
static fun getTypeLabelResource(type: Int): Int

Return the string resource that best describes the given TYPE. Will always return a valid resource.

Properties

CONTENT_FILTER_URI

Added in API level 5
static val CONTENT_FILTER_URI: Uri!

The content:// style URL for email lookup using a filter. The filter returns records of MIME type CONTENT_ITEM_TYPE. The filter is applied to display names as well as email addresses. The filter argument should be passed as an additional path segment after this URI.

Caution: If you publish your app to the Google Play Store, this field doesn't sort results based on contacts frequency. For more information, see the Contacts Provider page.

The query in the following example will return "Robert Parr (bob@incredibles.com)" as well as "Bob Parr (incredible@android.com)".

Uri uri = Uri.withAppendedPath(Email.CONTENT_LOOKUP_URI, Uri.encode("bob"));
  Cursor c = getContentResolver().query(uri,
           new String[]{Email.DISPLAY_NAME, Email.DATA},
           null, null, null);
  

CONTENT_LOOKUP_URI

Added in API level 5
static val CONTENT_LOOKUP_URI: Uri!

The content:// style URL for looking up data rows by email address. The lookup argument, an email address, should be passed as an additional path segment after this URI.

Example:

Uri uri = Uri.withAppendedPath(Email.CONTENT_LOOKUP_URI, Uri.encode(email));
  Cursor c = getContentResolver().query(uri,
           new String[]{Email.CONTACT_ID, Email.DISPLAY_NAME, Email.DATA},
           null, null, null);
  

CONTENT_URI

Added in API level 5
static val CONTENT_URI: Uri!

The content:// style URI for all data records of the CONTENT_ITEM_TYPE MIME type, combined with the associated raw contact and aggregate contact data.

ENTERPRISE_CONTENT_FILTER_URI

Added in API level 24
static val ENTERPRISE_CONTENT_FILTER_URI: Uri!

It supports the similar semantics as CONTENT_FILTER_URI and returns the same columns. This URI requires ContactsContract#DIRECTORY_PARAM_KEY in parameters, otherwise it will throw IllegalArgumentException. The passed directory can belong either to the calling user or to a managed profile that is linked to it.

Caution: If you publish your app to the Google Play Store, this field doesn't sort results based on contacts frequency. For more information, see the Contacts Provider page.

ENTERPRISE_CONTENT_LOOKUP_URI

Added in API level 23
static val ENTERPRISE_CONTENT_LOOKUP_URI: Uri!

URI used for looking up contacts by email on the contact databases of both the calling user and the managed profile that is linked to it.

It supports the same semantics as CONTENT_LOOKUP_URI and returns the same columns.
If the device has no managed profile that is linked to the calling user, it behaves in the exact same way as CONTENT_LOOKUP_URI.
If there is a managed profile linked to the calling user, it first queries the calling user's contact database, and only if no matching contacts are found there it then queries the managed profile database.

If a result is from the managed profile, the following changes are made to the data:

  • PHOTO_THUMBNAIL_URI and PHOTO_URI will be rewritten to specialURIs. Use android.content.ContentResolver#openAssetFileDescriptor or its siblings to load pictures from them.
  • PHOTO_ID and PHOTO_FILE_ID will be set to null. Don't use them.
  • CONTACT_ID and LOOKUP_KEY will be replaced with artificial values. These values will be consistent across multiple queries, but do not use them in places that do not explicitly say they accept them. If they are used in the selection param in android.content.ContentProvider#query, the result is undefined.
  • In order to tell whether a contact is from the managed profile, use ContactsContract.Contacts#isEnterpriseContactId(long).

    A contact lookup URL built by ContactsContract.Contacts#getLookupUri(long, String) with a CONTACT_ID and a LOOKUP_KEY returned by this API can be passed to android.provider.ContactsContract.QuickContact#showQuickContact even if a contact is from the managed profile.

    Uri lookupUri = Uri.withAppendedPath(Email.ENTERPRISE_CONTENT_LOOKUP_URI,
              Uri.encode(email));