Stay organized with collections
Save and categorize content based on your preferences.
Photo
class Photo : ContactsContract.DataColumnsWithJoins
A data kind representing a photo for the contact.
Some sync adapters will choose to download photos in a separate pass. A common pattern is to use columns ContactsContract.Data.SYNC1
through ContactsContract.Data.SYNC4
to store temporary data, e.g. the image URL or ID, state of download, server-side version of the image. It is allowed for the PHOTO
to be null.
You can use all columns defined for ContactsContract.Data
as well as the following aliases.
Column aliases
Type |
Alias |
Data column |
NUMBER |
PHOTO_FILE_ID |
DATA14 |
ID of the hi-res photo file. |
BLOB |
PHOTO |
DATA15 |
By convention, binary data is stored in DATA15. The thumbnail of the photo is stored in this column. |
Summary
Constants |
static String |
MIME type used when storing this in data table.
|
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 String |
Thumbnail photo of the raw contact.
|
static String |
Photo file ID for the display photo of the raw contact.
|
Constants
CONTENT_ITEM_TYPE
static val CONTENT_ITEM_TYPE: String
MIME type used when storing this in data table.
Value: "vnd.android.cursor.item/photo"
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"
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"
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"
PHOTO
static val PHOTO: String
Thumbnail photo of the raw contact. This is the raw bytes of an image that could be inflated using android.graphics.BitmapFactory
.
Type: BLOB
Value: "data15"
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# ContactsContract.CommonDataKinds.Photo\n\nAdded in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)\n\nPhoto\n=====\n\n*** ** * ** ***\n\nKotlin \\|[Java](/reference/android/provider/ContactsContract.CommonDataKinds.Photo \"View this page in Java\") \n\n```\nclass Photo : ContactsContract.DataColumnsWithJoins\n```\n\n|---|--------------------------------------------------------------|\n| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||\n| ↳ | [android.provider.ContactsContract.CommonDataKinds.Photo](#) |\n\nA data kind representing a photo for the contact.\n\nSome sync adapters will choose to download photos in a separate pass. A common pattern is to use columns [ContactsContract.Data.SYNC1](/reference/kotlin/android/provider/ContactsContract.DataColumns#SYNC1:kotlin.String) through [ContactsContract.Data.SYNC4](/reference/kotlin/android/provider/ContactsContract.DataColumns#SYNC4:kotlin.String) to store temporary data, e.g. the image URL or ID, state of download, server-side version of the image. It is allowed for the [PHOTO](#PHOTO:kotlin.String) to be null.\n\nYou can use all columns defined for [ContactsContract.Data](/reference/kotlin/android/provider/ContactsContract.Data) as well as the following aliases.\n\nColumn aliases\n--------------\n\n| Type | Alias | Data column ||\n|--------|-----------------------------------------------|------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|\n| NUMBER | [PHOTO_FILE_ID](#PHOTO_FILE_ID:kotlin.String) | [DATA14](/reference/kotlin/android/provider/ContactsContract.DataColumns#DATA14:kotlin.String) | ID of the hi-res photo file. |\n| BLOB | [PHOTO](#PHOTO:kotlin.String) | [DATA15](/reference/kotlin/android/provider/ContactsContract.DataColumns#DATA15:kotlin.String) | By convention, binary data is stored in DATA15. The thumbnail of the photo is stored in this column. |\n\nSummary\n-------\n\n| Constants ||\n|-----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| static [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [CONTENT_ITEM_TYPE](#CONTENT_ITEM_TYPE:kotlin.String) MIME type used when storing this in data table. |\n| static [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [EXTRA_ADDRESS_BOOK_INDEX](#EXTRA_ADDRESS_BOOK_INDEX:kotlin.String) Add this query parameter to a URI to get back row counts grouped by the address book index as cursor extras. |\n| static [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [EXTRA_ADDRESS_BOOK_INDEX_COUNTS](#EXTRA_ADDRESS_BOOK_INDEX_COUNTS:kotlin.String) The array of group counts for the corresponding group. |\n| static [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [EXTRA_ADDRESS_BOOK_INDEX_TITLES](#EXTRA_ADDRESS_BOOK_INDEX_TITLES:kotlin.String) The array of address book index titles, which are returned in the same order as the data in the cursor. |\n| static [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [PHOTO](#PHOTO:kotlin.String) Thumbnail photo of the raw contact. |\n| static [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [PHOTO_FILE_ID](#PHOTO_FILE_ID:kotlin.String) Photo file ID for the display photo of the raw contact. |\n\nConstants\n---------\n\n### CONTENT_ITEM_TYPE\n\nAdded in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nstatic val CONTENT_ITEM_TYPE: String\n```\n\nMIME type used when storing this in data table. \n\n Value: \"vnd.android.cursor.item/photo\"\n\n### EXTRA_ADDRESS_BOOK_INDEX\n\n```\nstatic val EXTRA_ADDRESS_BOOK_INDEX: String\n```\n\nAdd 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.\n\n```kotlin\nExample:\n \n import android.provider.ContactsContract.Contacts;\n \n Uri uri = Contacts.CONTENT_URI.buildUpon()\n .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, \"true\")\n .build();\n Cursor cursor = getContentResolver().query(uri,\n new String[] {Contacts.DISPLAY_NAME},\n null, null, null);\n Bundle bundle = cursor.getExtras();\n if (bundle.containsKey(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES) &&\n bundle.containsKey(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS)) {\n String sections[] =\n bundle.getStringArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES);\n int counts[] = bundle.getIntArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS);\n }\n \n```\n\n\u003cbr /\u003e\n\n Value: \"android.provider.extra.ADDRESS_BOOK_INDEX\"\n\n### EXTRA_ADDRESS_BOOK_INDEX_COUNTS\n\n```\nstatic val EXTRA_ADDRESS_BOOK_INDEX_COUNTS: String\n```\n\nThe array of group counts for the corresponding group. Contains the same number of elements as the EXTRA_ADDRESS_BOOK_INDEX_TITLES array.\n\nTYPE: int\\[\\] \n\n Value: \"android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS\"\n\n### EXTRA_ADDRESS_BOOK_INDEX_TITLES\n\n```\nstatic val EXTRA_ADDRESS_BOOK_INDEX_TITLES: String\n```\n\nThe array of address book index titles, which are returned in the same order as the data in the cursor.\n\nTYPE: String\\[\\] \n\n Value: \"android.provider.extra.ADDRESS_BOOK_INDEX_TITLES\"\n\n### PHOTO\n\nAdded in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nstatic val PHOTO: String\n```\n\nThumbnail photo of the raw contact. This is the raw bytes of an image that could be inflated using [android.graphics.BitmapFactory](../graphics/BitmapFactory.html#).\n\nType: BLOB \n\n Value: \"data15\"\n\n### PHOTO_FILE_ID\n\nAdded in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nstatic val PHOTO_FILE_ID: String\n```\n\nPhoto file ID for the display photo of the raw contact. See [ContactsContract.DisplayPhoto](/reference/kotlin/android/provider/ContactsContract.DisplayPhoto).\n\nType: NUMBER \n\n Value: \"data14\""]]