Skip to content

Most visited

Recently visited



public static final class ContactsContract.Contacts.Entity
extends Object implements BaseColumns, ContactsContract.ContactsColumns, ContactsContract.ContactNameColumns, ContactsContract.RawContactsColumns, ContactsContract.BaseSyncColumns, ContactsContract.SyncColumns, ContactsContract.DataColumns, ContactsContract.StatusColumns, ContactsContract.ContactOptionsColumns, ContactsContract.ContactStatusColumns, ContactsContract.DataUsageStatColumns

   ↳ android.provider.ContactsContract.Contacts.Entity

A sub-directory of a contact that contains all of its ContactsContract.RawContacts as well as ContactsContract.Data rows. To access this directory append CONTENT_DIRECTORY to the contact URI.

Entity has three ID fields: CONTACT_ID for the contact, RAW_CONTACT_ID for the raw contact and DATA_ID for the data rows. Entity always contains at least one row per constituent raw contact, even if there are no actual data rows. In this case the DATA_ID field will be null.

Entity reads all data for the entire contact in one transaction, to guarantee consistency. There is significant data duplication in the Entity (each row repeats all Contact columns and all RawContact columns), so the benefits of transactional consistency should be weighed against the cost of transferring large amounts of denormalized data from the Provider.

To reduce the amount of data duplication the contacts provider and directory providers implementing this protocol are allowed to provide common Contacts and RawContacts fields in the first row returned for each raw contact only and leave them as null in subsequent rows.




The directory twig for this sub-table

String DATA_ID

The ID of the data row.


The ID of the raw contact row.

Inherited constants

From interface android.provider.BaseColumns
From interface android.provider.ContactsContract.ContactsColumns
From interface android.provider.ContactsContract.ContactNameColumns
From interface android.provider.ContactsContract.RawContactsColumns
From interface android.provider.ContactsContract.BaseSyncColumns
From interface android.provider.ContactsContract.SyncColumns
From interface android.provider.ContactsContract.DataColumns
From interface android.provider.ContactsContract.StatusColumns
From interface android.provider.ContactsContract.ContactOptionsColumns
From interface android.provider.ContactsContract.ContactStatusColumns
From interface android.provider.ContactsContract.DataUsageStatColumns

Inherited methods

From class java.lang.Object



added in API level 11

The directory twig for this sub-table

Constant Value: "entities"


added in API level 11
String DATA_ID

The ID of the data row. The value will be null if this raw contact has no data rows.


Constant Value: "data_id"


added in API level 11

The ID of the raw contact row.


Constant Value: "raw_contact_id"

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)