ContactsContract.Profile


public static final class ContactsContract.Profile
extends Object implements BaseColumns, ContactsContract.ContactNameColumns, ContactsContract.ContactOptionsColumns, ContactsContract.ContactStatusColumns, ContactsContract.ContactsColumns

java.lang.Object
   ↳ android.provider.ContactsContract.Profile


Constants for the user's profile data, which is represented as a single contact on the device that represents the user. The profile contact is not aggregated together automatically in the same way that normal contacts are; instead, each account (including data set, if applicable) on the device may contribute a single raw contact representing the user's personal profile data from that source.

Access to the profile entry through these URIs (or incidental access to parts of the profile if retrieved directly via ID) requires additional permissions beyond the read/write contact permissions required by the provider. Querying for profile data requires android.permission.READ_PROFILE permission, and inserting or updating profile data requires android.permission.WRITE_PROFILE permission.

Operations

Insert
The user's profile entry cannot be created explicitly (attempting to do so will throw an exception). When a raw contact is inserted into the profile, the provider will check for the existence of a profile on the device. If one is found, the raw contact's RawContacts.CONTACT_ID column gets the _ID of the profile Contact. If no match is found, the profile Contact is created and its _ID is put into the RawContacts.CONTACT_ID column of the newly inserted raw contact.
Update
The profile Contact has the same update restrictions as Contacts in general, but requires the android.permission.WRITE_PROFILE permission.
Delete
The profile Contact cannot be explicitly deleted. It will be removed automatically if all of its constituent raw contact entries are deleted.
Query
  • The CONTENT_URI for profiles behaves in much the same way as retrieving a contact by ID, except that it will only ever return the user's profile contact.
  • The profile contact supports all of the same sub-paths as an individual contact does - the content of the profile contact can be retrieved as entities or data rows. Similarly, specific raw contact entries can be retrieved by appending the desired raw contact ID within the profile.

Summary

Constants

long MIN_ID

The minimum ID for any entity that belongs to the profile.

Inherited constants

String _COUNT

The count of rows in a directory.

String _ID

The unique ID for a row.

String DISPLAY_NAME_ALTERNATIVE

An alternative representation of the display name, such as "family name first" instead of "given name first" for Western names.

String DISPLAY_NAME_PRIMARY

The standard text shown as the contact's display name, based on the best available information for the contact (for example, it might be the email address if the name is not available).

String DISPLAY_NAME_SOURCE

The kind of data that is used as the display name for the contact, such as structured name or email address.

String PHONETIC_NAME

Pronunciation of the full name in the phonetic alphabet specified by PHONETIC_NAME_STYLE.

String PHONETIC_NAME_STYLE

The phonetic alphabet used to represent the PHONETIC_NAME.

String SORT_KEY_ALTERNATIVE

Sort key based on the alternative representation of the full name, DISPLAY_NAME_ALTERNATIVE.

String SORT_KEY_PRIMARY

Sort key that takes into account locale-based traditions for sorting names in address books.

String CUSTOM_RINGTONE

URI for a custom ringtone associated with the contact.

String LAST_TIME_CONTACTED

This constant was deprecated in API level 29. Contacts affinity information is no longer supported as of Android version Build.VERSION_CODES.Q. This column always contains 0.

String PINNED

The position at which the contact is pinned.

String SEND_TO_VOICEMAIL

Whether the contact should always be sent to voicemail.

String STARRED

Is the contact starred?

Type: INTEGER (boolean)

String TIMES_CONTACTED

This constant was deprecated in API level 29. Contacts affinity information is no longer supported as of Android version Build.VERSION_CODES.Q. This column always contains 0.

String CONTACT_CHAT_CAPABILITY

Contact Chat Capabilities.

String CONTACT_PRESENCE

Contact presence status.

String CONTACT_STATUS

Contact's latest status update.

String CONTACT_STATUS_ICON

The resource ID of the icon for the source of contact status.

String CONTACT_STATUS_LABEL

The resource ID of the label describing the source of contact status, e.g. "Google Talk".

String CONTACT_STATUS_RES_PACKAGE

The package containing resources for this status: label and icon.

String CONTACT_STATUS_TIMESTAMP

The absolute time in milliseconds when the latest status was inserted/updated.

String CONTACT_LAST_UPDATED_TIMESTAMP

Timestamp (milliseconds since epoch) of when this contact was last updated.

String DISPLAY_NAME

The display name for the contact.

String HAS_PHONE_NUMBER

An indicator of whether this contact has at least one phone number.

String IN_DEFAULT_DIRECTORY

Flag that reflects whether the contact exists inside the default directory.

String IN_VISIBLE_GROUP

Flag that reflects the Groups.GROUP_VISIBLE state of any CommonDataKinds.GroupMembership for this contact.

String IS_USER_PROFILE

Flag that reflects whether this contact represents the user's personal profile entry.

String LOOKUP_KEY

An opaque value that contains hints on how to find the contact if its row id changed as a result of a sync or aggregation.

String NAME_RAW_CONTACT_ID

Reference to the row in the RawContacts table holding the contact name.

String PHOTO_FILE_ID

Photo file ID of the full-size photo.

String PHOTO_ID

Reference to the row in the data table holding the photo.

String PHOTO_THUMBNAIL_URI

A URI that can be used to retrieve a thumbnail of the contact's photo.

String PHOTO_URI

A URI that can be used to retrieve the contact's full-size photo.

Fields

public static final Uri CONTENT_RAW_CONTACTS_URI

Uri for referencing the raw contacts that make up the user's profile Contacts entry.

public static final Uri CONTENT_URI

The content:// style URI for this table, which requests the contact entry representing the user's personal profile data.

public static final Uri CONTENT_VCARD_URI

Uri for referencing the user's profile Contacts entry, Provides OpenableColumns columns when queried, or returns the user's profile contact formatted as a vCard when opened through ContentResolver.openAssetFileDescriptor(Uri, String).

Inherited methods

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Constants

MIN_ID

Added in API level 14
public static final long MIN_ID

The minimum ID for any entity that belongs to the profile. This essentially defines an ID-space in which profile data is stored, and is used by the provider to determine whether a request via a non-profile-specific URI should be directed to the profile data rather than general contacts data, along with all the special permission checks that entails. Callers may use ContactsContract.isProfileId(long) to check whether a specific ID falls into the set of data intended for the profile.

Constant Value: 9223372034707292160 (0x7fffffff80000000)

Fields

CONTENT_RAW_CONTACTS_URI

Added in API level 14
public static final Uri CONTENT_RAW_CONTACTS_URI

Uri for referencing the raw contacts that make up the user's profile Contacts entry. An individual raw contact entry within the profile can be addressed by appending the raw contact ID. The entities or data within that specific raw contact can be requested by appending the entity or data path as well.

CONTENT_URI

Added in API level 14
public static final Uri CONTENT_URI

The content:// style URI for this table, which requests the contact entry representing the user's personal profile data.

CONTENT_VCARD_URI

Added in API level 14
public static final Uri CONTENT_VCARD_URI

Uri for referencing the user's profile Contacts entry, Provides OpenableColumns columns when queried, or returns the user's profile contact formatted as a vCard when opened through ContentResolver.openAssetFileDescriptor(Uri, String).