Added in API level 1

ContentResolver

abstract class ContentResolver
kotlin.Any
   ↳ android.content.ContentResolver

This class provides applications access to the content model.

Summary

Nested classes

Detailed description of a specific MIME type, including an icon and label that describe the type.

Constants
static String

This is the Android platform's generic MIME type to match any MIME type of the form "CURSOR_ITEM_BASE_TYPE/SUB_TYPE".

static String

This is the Android platform's base MIME type for a content: URI containing a Cursor of zero or more items.

static String

This is the Android platform's base MIME type for a content: URI containing a Cursor of a single item.

static String

Allows provider to report back to client which query keys are honored in a Cursor.

static String

An extra boolean describing whether a particular provider supports refresh or not.

static String

An extra Point describing the optimal size for a requested image resource, in pixels.

static String

Added to Cursor extras Bundle to indicate total row count of recordset when paging is supported.

static Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): typically set by a ContentProvider to indicate that this notification is the result of a android.

static Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): typically set by a ContentProvider to indicate that this notification is the result of an android.

static Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): if set, this notification will be skipped if it is being delivered to the root URI of a ContentObserver that is using "notify for descendants.

static Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): attempt to sync the change to the network.

static Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): typically set by a ContentProvider to indicate that this notification is the result of an android.

static String

Specifies the list of columns (stored as a String[]) against which to group results.

static String

Specifies the max number of rows to include in a Cursor.

static String

Specifies the offset row index within a Cursor.

static String

Allows client to specify a hint to the provider declaring which collation to use when sorting values.

static String

Specifies the list of columns (stored as a String[]) against which to sort results.

static String

Specifies desired sort order.

static String

Allows client to specify a hint to the provider declaring which locale to use when sorting values.

static String

Key for an SQL style GROUP BY string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal).

static String

Key for an SQL style HAVING string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal).

static String

Key for an SQL style LIMIT string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal).

static String

Key for an SQL style selection string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal) when called by a legacy client.

static String

Key for SQL selection string arguments list.

static String

Key for an SQL style sort string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal) when called by a legacy client.

static Int

static Int

static String

static String

static String

static String

static String

Indicates that the sync adapter should not proceed with the delete operations, if it determines that there are too many.

static String

If this extra is set to true then the request will not be retried if it fails.

static String

If this extra is set to true, the sync request will be scheduled at the front of the sync request queue, but it is still subject to JobScheduler quota and throttling due to App Standby buckets.

static String

static String

If this extra is set to true then any backoffs for the initial attempt (e.g. due to retries) are ignored by the sync scheduler.

static String

If this extra is set to true then the sync settings (like getSyncAutomatically()) are ignored by the sync scheduler.

static String

Set by the SyncManager to request that the SyncAdapter initialize itself for the given account/authority pair.

static String

Setting this extra is the equivalent of setting both SYNC_EXTRAS_IGNORE_SETTINGS and SYNC_EXTRAS_IGNORE_BACKOFF

static String

Indicates that the sync adapter should proceed with the delete operations, even if it determines that there are too many.

static String

If this extra is set to true, the sync request will be scheduled only when the device is plugged in.

static String

Run this sync operation as an "expedited job" (see android.app.job.JobInfo.Builder#setExpedited(boolean)).

static String

Indicates that this sync is intended to only upload local changes to the server.

static Int

static Int

static Int

Public constructors

Note: passing a null context here could lead to unexpected behavior in certain ContentResolver APIs so it is highly recommended to pass a non-null context here.

Public methods
ContentProviderClient?

Returns a ContentProviderClient that is associated with the ContentProvider that services the content at uri, starting the provider if necessary.

ContentProviderClient?

Returns a ContentProviderClient that is associated with the ContentProvider with the authority of name, starting the provider if necessary.

ContentProviderClient?

Like acquireContentProviderClient(android.net.Uri), but for use when you do not trust the stability of the target content provider.

ContentProviderClient?

Like acquireContentProviderClient(java.lang.String), but for use when you do not trust the stability of the target content provider.

open static Unit
addPeriodicSync(account: Account!, authority: String!, extras: Bundle!, pollFrequency: Long)

Specifies that a sync should be requested with the specified the account, authority, and extras at the given frequency.

open static Any!

Request notifications when the different aspects of the SyncManager change.

open Array<ContentProviderResult!>

Applies each of the ContentProviderOperation objects and returns an array of their results.

Int
bulkInsert(url: Uri, values: Array<ContentValues!>)

Inserts multiple rows into a table at the given URL.

Bundle?
call(uri: Uri, method: String, arg: String?, extras: Bundle?)

Call a provider-defined method.

Bundle?
call(authority: String, method: String, arg: String?, extras: Bundle?)

open Unit
cancelSync(uri: Uri!)

Cancel any active or pending syncs that match the Uri.

open static Unit
cancelSync(account: Account!, authority: String!)

Cancel any active or pending syncs that match account and authority.

open static Unit

Remove the specified sync.

Uri?

Transform the given url to a canonical representation of its referenced resource, which can be used across devices, persisted, backed up and restored, etc.

Int
delete(url: Uri, where: String?, selectionArgs: Array<String!>?)

Deletes row(s) specified by a content URI.

Int
delete(url: Uri, extras: Bundle?)

Deletes row(s) specified by a content URI.

open static SyncInfo!

If a sync is active returns the information about it, otherwise returns null.

open static MutableList<SyncInfo!>!

Returns a list with information about all the active syncs.

open static Int
getIsSyncable(account: Account!, authority: String!)

Check if this account/provider is syncable.

open static Boolean

Gets the global auto-sync setting that applies to all the providers and accounts.

open MutableList<UriPermission!>

Return list of all persisted URI permission grants that are hosted by the calling app.

open static MutableList<PeriodicSync!>!
getPeriodicSyncs(account: Account!, authority: String!)

Get the list of information about the periodic syncs for the given account and authority.

open MutableList<UriPermission!>

Return list of all URI permission grants that have been persisted by the calling app.

open Array<String!>?
getStreamTypes(url: Uri, mimeTypeFilter: String)

Query for the possible MIME types for the representations the given content URL can be returned when opened as as stream with #openTypedAssetFileDescriptor.

open static Array<SyncAdapterType!>!

Get information about the SyncAdapters that are known to the system.

open static Boolean
getSyncAutomatically(account: Account!, authority: String!)

Check if the provider should be synced when a network tickle is received

String?
getType(url: Uri)

Return the MIME type of the given content URL.

ContentResolver.MimeTypeInfo
getTypeInfo(mimeType: String)

Return a detailed description of the given MIME type, including an icon and label that describe the type.

Uri?
insert(url: Uri, values: ContentValues?)

Inserts a row into a table at the given URL.

Uri?
insert(url: Uri, values: ContentValues?, extras: Bundle?)

Inserts a row into a table at the given URL.

open static Boolean
isSyncActive(account: Account!, authority: String!)

Returns true if there is currently a sync operation for the given account or authority actively being processed.

open static Boolean
isSyncPending(account: Account!, authority: String!)

Return true if the pending status is true of any matching authorities.

open Bitmap
loadThumbnail(uri: Uri, size: Size, signal: CancellationSignal?)

Convenience method that efficiently loads a visual thumbnail for the given Uri.

open Unit
notifyChange(uri: Uri, observer: ContentObserver?)

Notify registered observers that a row was updated and attempt to sync changes to the network.

open Unit
notifyChange(uri: Uri, observer: ContentObserver?, syncToNetwork: Boolean)

Notify registered observers that a row was updated.

open Unit
notifyChange(uri: Uri, observer: ContentObserver?, flags: Int)

Notify registered observers that a row was updated.

open Unit
notifyChange(uris: MutableCollection<Uri!>, observer: ContentObserver?, flags: Int)

Notify registered observers that several rows have been updated.

AssetFileDescriptor?
openAssetFile(uri: Uri, mode: String, signal: CancellationSignal?)

AssetFileDescriptor?

Open a raw file descriptor to access data under a URI.

AssetFileDescriptor?
openAssetFileDescriptor(uri: Uri, mode: String, cancellationSignal: CancellationSignal?)

Open a raw file descriptor to access data under a URI.

ParcelFileDescriptor?
openFile(uri: Uri, mode: String, signal: CancellationSignal?)

ParcelFileDescriptor?

Open a raw file descriptor to access data under a URI.

ParcelFileDescriptor?
openFileDescriptor(uri: Uri, mode: String, cancellationSignal: CancellationSignal?)

Open a raw file descriptor to access data under a URI.

InputStream?

Open a stream on to the content associated with a content URI.

OutputStream?

Synonym for openOutputStream(uri, "w").

OutputStream?
openOutputStream(uri: Uri, mode: String)

Open a stream on to the content associated with a content URI.

AssetFileDescriptor?
openTypedAssetFile(uri: Uri, mimeTypeFilter: String, opts: Bundle?, signal: CancellationSignal?)

AssetFileDescriptor?
openTypedAssetFileDescriptor(uri: Uri, mimeType: String, opts: Bundle?)

Open a raw file descriptor to access (potentially type transformed) data from a "content:" URI.

AssetFileDescriptor?
openTypedAssetFileDescriptor(uri: Uri, mimeType: String, opts: Bundle?, cancellationSignal: CancellationSignal?)

Open a raw file descriptor to access (potentially type transformed) data from a "content:" URI.

Cursor?
query(uri: Uri, projection: Array<String!>?, selection: String?, selectionArgs: Array<String!>?, sortOrder: String?)

Query the given URI, returning a Cursor over the result set.

Cursor?
query(uri: Uri, projection: Array<String!>?, selection: String?, selectionArgs: Array<String!>?, sortOrder: String?, cancellationSignal: CancellationSignal?)

Query the given URI, returning a Cursor over the result set with optional support for cancellation.

Cursor?
query(uri: Uri, projection: Array<String!>?, queryArgs: Bundle?, cancellationSignal: CancellationSignal?)

Query the given URI, returning a Cursor over the result set with support for cancellation.

Boolean
refresh(url: Uri, extras: Bundle?, cancellationSignal: CancellationSignal?)

This allows clients to request an explicit refresh of content identified by uri.

Unit
registerContentObserver(uri: Uri, notifyForDescendants: Boolean, observer: ContentObserver)

Register an observer class that gets callbacks when data identified by a given content URI changes.

open Unit

Relinquish a persisted URI permission grant.

open static Unit
removePeriodicSync(account: Account!, authority: String!, extras: Bundle!)

Remove a periodic sync.

open static Unit

Remove a previously registered status change listener.

open static Unit
requestSync(account: Account!, authority: String!, extras: Bundle!)

Start an asynchronous sync operation.

open static Unit

Register a sync with the SyncManager.

open static Unit
setIsSyncable(account: Account!, authority: String!, syncable: Int)

Set whether this account/provider is syncable.

open static Unit

Sets the global auto-sync setting that applies to all the providers and accounts.

open static Unit
setSyncAutomatically(account: Account!, authority: String!, sync: Boolean)

Set whether or not the provider is synced when it receives a network tickle.

open Unit
startSync(uri: Uri!, extras: Bundle!)

Start an asynchronous sync operation.

open Unit

Take a persistable URI permission grant that has been offered.

Uri?

Given a canonical Uri previously generated by canonicalize, convert it to its local non-canonical form.

Unit

Unregisters a change observer.

Int
update(uri: Uri, values: ContentValues?, where: String?, selectionArgs: Array<String!>?)

Update row(s) in a content URI.

Int
update(uri: Uri, values: ContentValues?, extras: Bundle?)

Update row(s) in a content URI.

open static Unit

Check that only values of the following types are in the Bundle:

  • Integer
  • Long
  • Boolean
  • Float
  • Double
  • String
  • Account
  • null

open static ContentResolver

Create a ContentResolver instance that redirects all its methods to the given ContentProvider.

open static ContentResolver

Create a ContentResolver instance that redirects all its methods to the given ContentProviderClient.

Constants

ANY_CURSOR_ITEM_TYPE

Added in API level 21
static val ANY_CURSOR_ITEM_TYPE: String

This is the Android platform's generic MIME type to match any MIME type of the form "CURSOR_ITEM_BASE_TYPE/SUB_TYPE". SUB_TYPE is the sub-type of the application-dependent content, e.g., "audio", "video", "playlist".

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

CURSOR_DIR_BASE_TYPE

Added in API level 1
static val CURSOR_DIR_BASE_TYPE: String

This is the Android platform's base MIME type for a content: URI containing a Cursor of zero or more items. Applications should use this as the base type along with their own sub-type of their content: URIs that represent a directory of items. For example, hypothetical IMAP email client may have a URI content://com.company.provider.imap/inbox for all of the messages in its inbox, whose MIME type would be reported as CURSOR_DIR_BASE_TYPE + "/vnd.company.imap-msg"

Note how the base MIME type varies between this and CURSOR_ITEM_BASE_TYPE depending on whether there is one single item or multiple items in the data set, while the sub-type remains the same because in either case the data structure contained in the cursor is the same.

Value: "vnd.android.cursor.dir"

CURSOR_ITEM_BASE_TYPE

Added in API level 1
static val CURSOR_ITEM_BASE_TYPE: String

This is the Android platform's base MIME type for a content: URI containing a Cursor of a single item. Applications should use this as the base type along with their own sub-type of their content: URIs that represent a particular item. For example, hypothetical IMAP email client may have a URI content://com.company.provider.imap/inbox/1 for a particular message in the inbox, whose MIME type would be reported as CURSOR_ITEM_BASE_TYPE + "/vnd.company.imap-msg"

Compare with CURSOR_DIR_BASE_TYPE.

Value: "vnd.android.cursor.item"

EXTRA_HONORED_ARGS

Added in API level 26
static val EXTRA_HONORED_ARGS: String

Allows provider to report back to client which query keys are honored in a Cursor.

Key identifying a String[] containing all QUERY_ARG_SORT* arguments honored by the provider. Include this in Cursor extras Bundle when any QUERY_ARG_SORT* value was honored during the preparation of the results Cursor.

If present, ALL honored arguments are enumerated in this extra’s payload.

Value: "android.content.extra.HONORED_ARGS"

EXTRA_REFRESH_SUPPORTED

Added in API level 26
static val EXTRA_REFRESH_SUPPORTED: String

An extra boolean describing whether a particular provider supports refresh or not. If a provider supports refresh, it should include this key in its returned Cursor as part of its query call.

Value: "android.content.extra.REFRESH_SUPPORTED"

EXTRA_SIZE

Added in API level 21
static val EXTRA_SIZE: String

An extra Point describing the optimal size for a requested image resource, in pixels. If a provider has multiple sizes of the image, it should return the image closest to this size.

Value: "android.content.extra.SIZE"

EXTRA_TOTAL_COUNT

Added in API level 26
static val EXTRA_TOTAL_COUNT: String

Added to Cursor extras Bundle to indicate total row count of recordset when paging is supported. Providers must include this when implementing paging support.

A provider may return -1 that row count of the recordset is unknown.

Providers having returned -1 in a previous query are recommended to send content change notification once (if) full recordset size becomes known.

Value: "android.content.extra.TOTAL_COUNT"

NOTIFY_DELETE

Added in API level 30
static val NOTIFY_DELETE: Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): typically set by a ContentProvider to indicate that this notification is the result of a android.content.ContentProvider#delete call.

Sending these detailed flags are optional, but providers are strongly recommended to send them.

Value: 16

NOTIFY_INSERT

Added in API level 30
static val NOTIFY_INSERT: Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): typically set by a ContentProvider to indicate that this notification is the result of an android.content.ContentProvider#insert call.

Sending these detailed flags are optional, but providers are strongly recommended to send them.

Value: 4

NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS

Added in API level 24
static val NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS: Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): if set, this notification will be skipped if it is being delivered to the root URI of a ContentObserver that is using "notify for descendants." The purpose of this is to allow the provide to send a general notification of "something under X" changed that observers of that specific URI can receive, while also sending a specific URI under X. It would use this flag when sending the former, so that observers of "X and descendants" only see the latter.

Value: 2

NOTIFY_SYNC_TO_NETWORK

Added in API level 24
static val NOTIFY_SYNC_TO_NETWORK: Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): attempt to sync the change to the network.

Value: 1

NOTIFY_UPDATE

Added in API level 30
static val NOTIFY_UPDATE: Int

Flag for notifyChange(android.net.Uri,android.database.ContentObserver,int): typically set by a ContentProvider to indicate that this notification is the result of an android.content.ContentProvider#update call.

Sending these detailed flags are optional, but providers are strongly recommended to send them.

Value: 8

QUERY_ARG_GROUP_COLUMNS

Added in API level 30
static val QUERY_ARG_GROUP_COLUMNS: String

Specifies the list of columns (stored as a String[]) against which to group results. When column values are identical, multiple records are collapsed together into a single record.

Columns present in this list must also be included in the projection supplied to ContentResolver#query(Uri, String[], Bundle, CancellationSignal).

Apps targeting android.os.Build.VERSION_CODES#R or higher:

  • ContentProvider implementations: When preparing data in ContentProvider#query(Uri, String[], Bundle, CancellationSignal), if group columns is reflected in the returned Cursor, it is strongly recommended that QUERY_ARG_SORT_COLUMNS then be included in the array of honored arguments reflected in Cursor extras Bundle under EXTRA_HONORED_ARGS.
  • When querying a provider, where no QUERY_ARG_SQL* otherwise exists in the arguments Bundle, the Content framework will attempt to synthesize an QUERY_ARG_SQL* argument using the corresponding QUERY_ARG_SORT* values.
  • Value: "android:query-arg-group-columns"

    QUERY_ARG_LIMIT

    Added in API level 26
    static val QUERY_ARG_LIMIT: String

    Specifies the max number of rows to include in a Cursor.

    Value: "android:query-arg-limit"

    QUERY_ARG_OFFSET

    Added in API level 26
    static val QUERY_ARG_OFFSET: String

    Specifies the offset row index within a Cursor.

    Value: "android:query-arg-offset"

    QUERY_ARG_SORT_COLLATION

    Added in API level 26
    static val QUERY_ARG_SORT_COLLATION: String

    Allows client to specify a hint to the provider declaring which collation to use when sorting values.

    Providers may support custom collators. When specifying a custom collator the value is determined by the Provider.

    ContentProvider implementations: When preparing data in ContentProvider#query(Uri, String[], Bundle, CancellationSignal), if sort collation is reflected in the returned Cursor, it is strongly recommended that QUERY_ARG_SORT_COLLATION then be included in the array of honored arguments reflected in Cursor extras Bundle under EXTRA_HONORED_ARGS.

    When querying a provider, where no QUERY_ARG_SQL* otherwise exists in the arguments Bundle, the Content framework will attempt to synthesize a QUERY_ARG_SQL* argument using the corresponding QUERY_ARG_SORT* values.

    Value: "android:query-arg-sort-collation"

    QUERY_ARG_SORT_COLUMNS

    Added in API level 26
    static val QUERY_ARG_SORT_COLUMNS: String

    Specifies the list of columns (stored as a String[]) against which to sort results. When first column values are identical, records are then sorted based on second column values, and so on.

    Columns present in this list must also be included in the projection supplied to ContentResolver#query(Uri, String[], Bundle, CancellationSignal).

    Apps targeting android.os.Build.VERSION_CODES#O or higher:

  • ContentProvider implementations: When preparing data in ContentProvider#query(Uri, String[], Bundle, CancellationSignal), if sort columns is reflected in the returned Cursor, it is strongly recommended that QUERY_ARG_SORT_COLUMNS then be included in the array of honored arguments reflected in Cursor extras Bundle under EXTRA_HONORED_ARGS.
  • When querying a provider, where no QUERY_ARG_SQL* otherwise exists in the arguments Bundle, the Content framework will attempt to synthesize an QUERY_ARG_SQL* argument using the corresponding QUERY_ARG_SORT* values.
  • Value: "android:query-arg-sort-columns"

    QUERY_ARG_SORT_DIRECTION

    Added in API level 26
    static val QUERY_ARG_SORT_DIRECTION: String

    Specifies desired sort order. When unspecified a provider may provide a default sort direction, or choose to return unsorted results.

    Apps targeting android.os.Build.VERSION_CODES#O or higher:

  • ContentProvider implementations: When preparing data in ContentProvider#query(Uri, String[], Bundle, CancellationSignal), if sort direction is reflected in the returned Cursor, it is strongly recommended that QUERY_ARG_SORT_DIRECTION then be included in the array of honored arguments reflected in Cursor extras Bundle under EXTRA_HONORED_ARGS.
  • When querying a provider, where no QUERY_ARG_SQL* otherwise exists in the arguments Bundle, the Content framework will attempt to synthesize a QUERY_ARG_SQL* argument using the corresponding QUERY_ARG_SORT* values.
  • Value: "android:query-arg-sort-direction"

    QUERY_ARG_SORT_LOCALE

    Added in API level 30
    static val QUERY_ARG_SORT_LOCALE: String

    Allows client to specify a hint to the provider declaring which locale to use when sorting values.

    The value is defined as a RFC 3066 locale ID followed by an optional keyword list, which is the locale format used to configure ICU through classes like android.icu.util.ULocale. This supports requesting advanced sorting options, such as de@collation=phonebook, zh@collation=pinyin, etc.

    ContentProvider implementations: When preparing data in ContentProvider#query(Uri, String[], Bundle, CancellationSignal), if sort locale is reflected in the returned Cursor, it is strongly recommended that QUERY_ARG_SORT_LOCALE then be included in the array of honored arguments reflected in Cursor extras Bundle under EXTRA_HONORED_ARGS.

    Value: "android:query-arg-sort-locale"

    QUERY_ARG_SQL_GROUP_BY

    Added in API level 30
    static val QUERY_ARG_SQL_GROUP_BY: String

    Key for an SQL style GROUP BY string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal).

    Apps targeting android.os.Build.VERSION_CODES#O or higher are strongly encourage to use structured query arguments in lieu of opaque SQL query clauses.

    Value: "android:query-arg-sql-group-by"

    QUERY_ARG_SQL_HAVING

    Added in API level 30
    static val QUERY_ARG_SQL_HAVING: String

    Key for an SQL style HAVING string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal).

    Apps targeting android.os.Build.VERSION_CODES#O or higher are strongly encourage to use structured query arguments in lieu of opaque SQL query clauses.

    Value: "android:query-arg-sql-having"

    QUERY_ARG_SQL_LIMIT

    Added in API level 30
    static val QUERY_ARG_SQL_LIMIT: String

    Key for an SQL style LIMIT string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal).

    Apps targeting android.os.Build.VERSION_CODES#O or higher are strongly encourage to use structured query arguments in lieu of opaque SQL query clauses.

    Value: "android:query-arg-sql-limit"

    QUERY_ARG_SQL_SELECTION

    Added in API level 26
    static val QUERY_ARG_SQL_SELECTION: String

    Key for an SQL style selection string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal) when called by a legacy client.

    Clients should never include user supplied values directly in the selection string, as this presents an avenue for SQL injection attacks. In lieu of this, a client should use standard placeholder notation to represent values in a selection string, then supply a corresponding value in {@value #QUERY_ARG_SQL_SELECTION_ARGS}.

    Apps targeting android.os.Build.VERSION_CODES#O or higher are strongly encourage to use structured query arguments in lieu of opaque SQL query clauses.

    Value: "android:query-arg-sql-selection"

    QUERY_ARG_SQL_SELECTION_ARGS

    Added in API level 26
    static val QUERY_ARG_SQL_SELECTION_ARGS: String

    Key for SQL selection string arguments list.

    Clients should never include user supplied values directly in the selection string, as this presents an avenue for SQL injection attacks. In lieu of this, a client should use standard placeholder notation to represent values in a selection string, then supply a corresponding value in {@value #QUERY_ARG_SQL_SELECTION_ARGS}.

    Apps targeting android.os.Build.VERSION_CODES#O or higher are strongly encourage to use structured query arguments in lieu of opaque SQL query clauses.

    Value: "android:query-arg-sql-selection-args"

    QUERY_ARG_SQL_SORT_ORDER

    Added in API level 26
    static val QUERY_ARG_SQL_SORT_ORDER: String

    Key for an SQL style sort string that may be present in the query Bundle argument passed to ContentProvider#query(Uri, String[], Bundle, CancellationSignal) when called by a legacy client.

    Apps targeting android.os.Build.VERSION_CODES#O or higher are strongly encourage to use structured query arguments in lieu of opaque SQL query clauses.

    Value: "android:query-arg-sql-sort-order"

    QUERY_SORT_DIRECTION_ASCENDING

    Added in API level 26
    static val QUERY_SORT_DIRECTION_ASCENDING: Int
    Value: 0

    QUERY_SORT_DIRECTION_DESCENDING

    Added in API level 26
    static val QUERY_SORT_DIRECTION_DESCENDING: Int
    Value: 1

    SCHEME_ANDROID_RESOURCE

    Added in API level 1
    static val SCHEME_ANDROID_RESOURCE: String
    Value: "android.resource"

    SCHEME_CONTENT

    Added in API level 1
    static val SCHEME_CONTENT: String
    Value: "content"

    SCHEME_FILE

    Added in API level 1
    static val SCHEME_FILE: String
    Value: "file"

    SYNC_EXTRAS_ACCOUNT

    Added in API level 1
    Deprecated in API level 15
    static val SYNC_EXTRAS_ACCOUNT: String

    Deprecated: instead use requestSync(android.accounts.Account,java.lang.String,android.os.Bundle)

    Value: "account"

    SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS

    Added in API level 1
    static val SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS: String

    Indicates that the sync adapter should not proceed with the delete operations, if it determines that there are too many. See SyncResult#tooManyDeletions

    Value: "discard_deletions"

    SYNC_EXTRAS_DO_NOT_RETRY

    Added in API level 8
    static val SYNC_EXTRAS_DO_NOT_RETRY: String

    If this extra is set to true then the request will not be retried if it fails.

    Value: "do_not_retry"

    SYNC_EXTRAS_EXPEDITED

    Added in API level 1
    static val SYNC_EXTRAS_EXPEDITED: String

    If this extra is set to true, the sync request will be scheduled at the front of the sync request queue, but it is still subject to JobScheduler quota and throttling due to App Standby buckets.

    This is different from SYNC_EXTRAS_SCHEDULE_AS_EXPEDITED_JOB.

    Value: "expedited"

    SYNC_EXTRAS_FORCE

    Added in API level 1
    Deprecated in API level 15
    static val SYNC_EXTRAS_FORCE: String

    Deprecated: instead use SYNC_EXTRAS_MANUAL

    Value: "force"

    SYNC_EXTRAS_IGNORE_BACKOFF

    Added in API level 8
    static val SYNC_EXTRAS_IGNORE_BACKOFF: String

    If this extra is set to true then any backoffs for the initial attempt (e.g. due to retries) are ignored by the sync scheduler. If this request fails and gets rescheduled then the retries will still honor the backoff.

    Value: "ignore_backoff"

    SYNC_EXTRAS_IGNORE_SETTINGS

    Added in API level 8
    static val SYNC_EXTRAS_IGNORE_SETTINGS: String

    If this extra is set to true then the sync settings (like getSyncAutomatically()) are ignored by the sync scheduler.

    Value: "ignore_settings"

    SYNC_EXTRAS_INITIALIZE

    Added in API level 5
    static val SYNC_EXTRAS_INITIALIZE: String

    Set by the SyncManager to request that the SyncAdapter initialize itself for the given account/authority pair. One required initialization step is to ensure that setIsSyncable(android.accounts.Account,java.lang.String,int) has been called with a >= 0 value. When this flag is set the SyncAdapter does not need to do a full sync, though it is allowed to do so.

    Value: "initialize"

    SYNC_EXTRAS_MANUAL

    Added in API level 5
    static val SYNC_EXTRAS_MANUAL: String

    Setting this extra is the equivalent of setting both SYNC_EXTRAS_IGNORE_SETTINGS and SYNC_EXTRAS_IGNORE_BACKOFF

    Value: "force"

    SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS

    Added in API level 1
    static val SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS: String

    Indicates that the sync adapter should proceed with the delete operations, even if it determines that there are too many. See SyncResult#tooManyDeletions

    Value: "deletions_override"

    SYNC_EXTRAS_REQUIRE_CHARGING

    Added in API level 24
    static val SYNC_EXTRAS_REQUIRE_CHARGING: String

    If this extra is set to true, the sync request will be scheduled only when the device is plugged in. This is equivalent to calling setRequiresCharging(true) on SyncRequest.

    Value: "require_charging"

    SYNC_EXTRAS_SCHEDULE_AS_EXPEDITED_JOB

    Added in API level 31
    static val SYNC_EXTRAS_SCHEDULE_AS_EXPEDITED_JOB: String

    Run this sync operation as an "expedited job" (see android.app.job.JobInfo.Builder#setExpedited(boolean)). Normally (if this flag isn't specified), sync operations are executed as regular android.app.job.JobService jobs.

    Because Expedited Jobs have various restrictions compared to regular jobs, this flag cannot be combined with certain other flags, otherwise an IllegalArgumentException will be thrown. Notably, because Expedited Jobs do not support various constraints, the following restriction apply:

    This is different from SYNC_EXTRAS_EXPEDITED.

    Value: "schedule_as_expedited_job"

    SYNC_EXTRAS_UPLOAD

    Added in API level 1
    static val SYNC_EXTRAS_UPLOAD: String

    Indicates that this sync is intended to only upload local changes to the server. For example, this will be set to true if the sync is initiated by a call to ContentResolver#notifyChange(android.net.Uri, android.database.ContentObserver, boolean)

    Value: "upload"

    SYNC_OBSERVER_TYPE_ACTIVE

    Added in API level 8
    static val SYNC_OBSERVER_TYPE_ACTIVE: Int
    Value: 4

    SYNC_OBSERVER_TYPE_PENDING

    Added in API level 8
    static val SYNC_OBSERVER_TYPE_PENDING: Int
    Value: 2

    SYNC_OBSERVER_TYPE_SETTINGS

    Added in API level 8
    static val SYNC_OBSERVER_TYPE_SETTINGS: Int
    Value: 1

    Public constructors

    ContentResolver

    Added in API level 1
    ContentResolver(context: Context?)

    Note: passing a null context here could lead to unexpected behavior in certain ContentResolver APIs so it is highly recommended to pass a non-null context here.

    Parameters
    context Context?: This value may be null.

    Public methods

    acquireContentProviderClient

    Added in API level 5
    fun acquireContentProviderClient(uri: Uri): ContentProviderClient?

    Returns a ContentProviderClient that is associated with the ContentProvider that services the content at uri, starting the provider if necessary. Returns null if there is no provider associated wih the uri. The caller must indicate that they are done with the provider by calling ContentProviderClient#release which will allow the system to release the provider if it determines that there is no other reason for keeping it active.

    Parameters
    uri Uri: specifies which provider should be acquired This value cannot be null.
    Return
    ContentProviderClient? a ContentProviderClient that is associated with the ContentProvider that services the content at uri or null if there isn't one.

    acquireContentProviderClient

    Added in API level 5
    fun acquireContentProviderClient(name: String): ContentProviderClient?

    Returns a ContentProviderClient that is associated with the ContentProvider with the authority of name, starting the provider if necessary. Returns null if there is no provider associated wih the uri. The caller must indicate that they are done with the provider by calling ContentProviderClient#release which will allow the system to release the provider if it determines that there is no other reason for keeping it active.

    Parameters
    name String: specifies which provider should be acquired This value cannot be null.
    Return
    ContentProviderClient? a ContentProviderClient that is associated with the ContentProvider with the authority of name or null if there isn't one.

    acquireUnstableContentProviderClient

    Added in API level 16
    fun acquireUnstableContentProviderClient(uri: Uri): ContentProviderClient?

    Like acquireContentProviderClient(android.net.Uri), but for use when you do not trust the stability of the target content provider. This turns off the mechanism in the platform clean up processes that are dependent on a content provider if that content provider's process goes away. Normally you can safely assume that once you have acquired a provider, you can freely use it as needed and it won't disappear, even if your process is in the background. If using this method, you need to take care to deal with any failures when communicating with the provider, and be sure to close it so that it can be re-opened later. In particular, catching a android.os.DeadObjectException from the calls there will let you know that the content provider has gone away; at that point the current ContentProviderClient object is invalid, and you should release it. You can acquire a new one if you would like to try to restart the provider and perform new operations on it.

    Parameters
    uri Uri: This value cannot be null.
    Return
    ContentProviderClient? This value may be null.

    acquireUnstableContentProviderClient

    Added in API level 16
    fun acquireUnstableContentProviderClient(name: String): ContentProviderClient?

    Like acquireContentProviderClient(java.lang.String), but for use when you do not trust the stability of the target content provider. This turns off the mechanism in the platform clean up processes that are dependent on a content provider if that content provider's process goes away. Normally you can safely assume that once you have acquired a provider, you can freely use it as needed and it won't disappear, even if your process is in the background. If using this method, you need to take care to deal with any failures when communicating with the provider, and be sure to close it so that it can be re-opened later. In particular, catching a android.os.DeadObjectException from the calls there will let you know that the content provider has gone away; at that point the current ContentProviderClient object is invalid, and you should release it. You can acquire a new one if you would like to try to restart the provider and perform new operations on it.

    Parameters
    name String: This value cannot be null.
    Return
    ContentProviderClient? This value may be null.

    addPeriodicSync

    Added in API level 8
    open static fun addPeriodicSync(
        account: Account!,
        authority: String!,
        extras: Bundle!,
        pollFrequency: Long
    ): Unit

    Specifies that a sync should be requested with the specified the account, authority, and extras at the given frequency. If there is already another periodic sync scheduled with the account, authority and extras then a new periodic sync won't be added, instead the frequency of the previous one will be updated.

    These periodic syncs honor the "syncAutomatically" and "masterSyncAutomatically" settings. Although these sync are scheduled at the specified frequency, it may take longer for it to actually be started if other syncs are ahead of it in the sync operation queue. This means that the actual start time may drift.

    Periodic syncs are not allowed to have any of SYNC_EXTRAS_DO_NOT_RETRY, SYNC_EXTRAS_IGNORE_BACKOFF, SYNC_EXTRAS_IGNORE_SETTINGS, SYNC_EXTRAS_INITIALIZE, SYNC_EXTRAS_FORCE, SYNC_EXTRAS_EXPEDITED, SYNC_EXTRAS_MANUAL, SYNC_EXTRAS_SCHEDULE_AS_EXPEDITED_JOB set to true. If any are supplied then an IllegalArgumentException will be thrown.

    This method requires the caller to hold the permission android.Manifest.permission#WRITE_SYNC_SETTINGS.

    The bundle for a periodic sync can be queried by applications with the correct permissions using ContentResolver#getPeriodicSyncs(Account account, String provider), so no sensitive data should be transferred here.

    Parameters
    account Account!: the account to specify in the sync
    authority String!: the provider to specify in the sync request
    extras Bundle!: extra parameters to go along with the sync request
    pollFrequency Long: how frequently the sync should be performed, in seconds. On Android API level 24 and above, a minimum interval of 15 minutes is enforced. On previous versions, the minimum interval is 1 hour.
    Exceptions
    java.lang.IllegalArgumentException if an illegal extra was set or if any of the parameters are null.

    addStatusChangeListener

    Added in API level 5
    open static fun addStatusChangeListener(
        mask: Int,
        callback: SyncStatusObserver!
    ): Any!

    Request notifications when the different aspects of the SyncManager change. The different items that can be requested are:

    The caller can set one or more of the status types in the mask for any given listener registration.

    Parameters
    mask Int: the status change types that will cause the callback to be invoked
    callback SyncStatusObserver!: observer to be invoked when the status changes
    Return
    Any! a handle that can be used to remove the listener at a later time

    applyBatch

    Added in API level 5
    open fun applyBatch(
        authority: String,
        operations: ArrayList<ContentProviderOperation!>
    ): Array<ContentProviderResult!>

    Applies each of the ContentProviderOperation objects and returns an array of their results. Passes through OperationApplicationException, which may be thrown by the call to ContentProviderOperation#apply. If all the applications succeed then a ContentProviderResult array with the same number of elements as the operations will be returned. It is implementation-specific how many, if any, operations will have been successfully applied if a call to apply results in a OperationApplicationException.

    Parameters
    authority String: the authority of the ContentProvider to which this batch should be applied This value cannot be null.
    operations ArrayList<ContentProviderOperation!>: the operations to apply This value cannot be null.
    Return
    Array<ContentProviderResult!> the results of the applications This value cannot be null.
    Exceptions
    android.content.OperationApplicationException thrown if an application fails. See ContentProviderOperation#apply for more information.
    android.os.RemoteException thrown if a RemoteException is encountered while attempting to communicate with a remote provider.

    bulkInsert

    Added in API level 1
    fun bulkInsert(
        url: Uri,
        values: Array<ContentValues!>
    ): Int

    Inserts multiple rows into a table at the given URL. This function make no guarantees about the atomicity of the insertions.

    Parameters
    url Uri: The URL of the table to insert into. This value cannot be null.
    values Array<ContentValues!>: The initial values for the newly inserted rows. The key is the column name for the field. Passing null will create an empty row.
    Return
    Int the number of newly created rows.

    call

    Added in API level 11
    fun call(
        uri: Uri,
        method: String,
        arg: String?,
        extras: Bundle?
    ): Bundle?

    Call a provider-defined method. This can be used to implement read or write interfaces which are cheaper than using a Cursor and/or do not fit into the traditional table model.

    Parameters
    method String: provider-defined method name to call. Opaque to framework, but must be non-null.
    arg String?: provider-defined String argument. May be null.
    extras Bundle?: provider-defined Bundle argument. May be null.
    uri Uri: This value cannot be null.
    Return
    Bundle? a result Bundle, possibly null. Will be null if the ContentProvider does not implement call.
    Exceptions
    java.lang.NullPointerException if uri or method is null
    java.lang.IllegalArgumentException if uri is not known

    call

    Added in API level 29
    fun call(
        authority: String,
        method: String,
        arg: String?,
        extras: Bundle?
    ): Bundle?
    Parameters
    authority String: This value cannot be null.
    method String: This value cannot be null.
    arg String?: This value may be null.
    extras Bundle?: This value may be null.
    Return
    Bundle? This value may be null.

    cancelSync

    Added in API level 1
    Deprecated in API level 15
    open fun cancelSync(uri: Uri!): Unit

    Deprecated: instead use cancelSync(android.accounts.Account,java.lang.String)

    Cancel any active or pending syncs that match the Uri. If the uri is null then all syncs will be canceled.

    Parameters
    uri Uri!: the uri of the provider to sync or null to sync all providers.

    cancelSync

    Added in API level 5
    open static fun cancelSync(
        account: Account!,
        authority: String!
    ): Unit

    Cancel any active or pending syncs that match account and authority. The account and authority can each independently be set to null, which means that syncs with any account or authority, respectively, will match.

    Parameters
    account Account!: filters the syncs that match by this account
    authority String!: filters the syncs that match by this authority

    cancelSync

    Added in API level 21
    open static fun cancelSync(request: SyncRequest!): Unit

    Remove the specified sync. This will cancel any pending or active syncs. If the request is for a periodic sync, this call will remove any future occurrences.

    If a periodic sync is specified, the caller must hold the permission android.Manifest.permission#WRITE_SYNC_SETTINGS.

    It is possible to cancel a sync using a SyncRequest object that is not the same object with which you requested the sync. Do so by building a SyncRequest with the same adapter, frequency, and extras bundle.
    Parameters
    request SyncRequest!: SyncRequest object containing information about sync to cancel.

    canonicalize

    Added in API level 19
    fun canonicalize(url: Uri): Uri?

    Transform the given url to a canonical representation of its referenced resource, which can be used across devices, persisted, backed up and restored, etc. The returned Uri is still a fully capable Uri for use with its content provider, allowing you to do all of the same content provider operations as with the original Uri -- #query, openInputStream(android.net.Uri), etc. The only difference in behavior between the original and new Uris is that the content provider may need to do some additional work at each call using it to resolve it to the correct resource, especially if the canonical Uri has been moved to a different environment.

    If you are moving a canonical Uri between environments, you should perform another call to canonicalize with that original Uri to re-canonicalize it for the current environment. Alternatively, you may want to use uncanonicalize to transform it to a non-canonical Uri that works only in the current environment but potentially more efficiently than the canonical representation.

    Parameters
    url Uri: The Uri that is to be transformed to a canonical representation. Like all resolver calls, the input can be either a non-canonical or canonical Uri. This value cannot be null.
    Return
    Uri? Returns the official canonical representation of url, or null if the content provider does not support a canonical representation of the given Uri. Many providers may not support canonicalization of some or all of their Uris.

    See Also

    delete

    Added in API level 1
    fun delete(
        url: Uri,
        where: String?,
        selectionArgs: Array<String!>?
    ): Int

    Deletes row(s) specified by a content URI. If the content provider supports transactions, the deletion will be atomic.

    Parameters
    url Uri: The URL of the row to delete. This value cannot be null.
    where String?: A filter to apply to rows before deleting, formatted as an SQL WHERE clause (excluding the WHERE itself). This value may be null.
    selectionArgs Array<String!>?: This value may be null.
    Return
    Int The number of rows deleted.

    delete

    Added in API level 30
    fun delete(
        url: Uri,
        extras: Bundle?
    ): Int

    Deletes row(s) specified by a content URI. If the content provider supports transactions, the deletion will be atomic.

    Parameters
    url Uri: The URL of the row to delete. This value cannot be null.
    extras Bundle?: A Bundle containing additional information necessary for the operation. Arguments may include SQL style arguments, such as ContentResolver#QUERY_ARG_SQL_LIMIT, but note that the documentation for each individual provider will indicate which arguments they support. This value may be null.
    Return
    Int The number of rows deleted.
    Exceptions
    java.lang.IllegalArgumentException if the provider doesn't support one of the requested Bundle arguments.

    getCurrentSync

    Added in API level 8
    Deprecated in API level 15
    open static fun getCurrentSync(): SyncInfo!

    Deprecated: Since multiple concurrent syncs are now supported you should use getCurrentSyncs() to get the accurate list of current syncs. This method returns the first item from the list of current syncs or null if there are none.

    If a sync is active returns the information about it, otherwise returns null.

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_STATS.

    Return
    SyncInfo! the SyncInfo for the currently active sync or null if one is not active.

    getCurrentSyncs

    Added in API level 11
    open static fun getCurrentSyncs(): MutableList<SyncInfo!>!

    Returns a list with information about all the active syncs. This list will be empty if there are no active syncs.

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_STATS.

    Return
    MutableList<SyncInfo!>! a List of SyncInfo objects for the currently active syncs.

    getIsSyncable

    Added in API level 5
    open static fun getIsSyncable(
        account: Account!,
        authority: String!
    ): Int

    Check if this account/provider is syncable.

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_SETTINGS.

    Return
    Int >0 if it is syncable, 0 if not, and <0 if the state isn't known yet.

    getMasterSyncAutomatically

    Added in API level 5
    open static fun getMasterSyncAutomatically(): Boolean

    Gets the global auto-sync setting that applies to all the providers and accounts. If this is false then the per-provider auto-sync setting is ignored.

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_SETTINGS.

    Return
    Boolean the global auto-sync setting that applies to all the providers and accounts

    getOutgoingPersistedUriPermissions

    Added in API level 19
    open fun getOutgoingPersistedUriPermissions(): MutableList<UriPermission!>

    Return list of all persisted URI permission grants that are hosted by the calling app. That is, the returned permissions have been granted from the calling app. Only grants taken with takePersistableUriPermission(android.net.Uri,int) are returned.

    Note: Some of the returned URIs may not be usable until after the user is unlocked.

    Return
    MutableList<UriPermission!> This value cannot be null.

    getPeriodicSyncs

    Added in API level 8
    open static fun getPeriodicSyncs(
        account: Account!,
        authority: String!
    ): MutableList<PeriodicSync!>!

    Get the list of information about the periodic syncs for the given account and authority.

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_SETTINGS.

    Parameters
    account Account!: the account whose periodic syncs we are querying
    authority String!: the provider whose periodic syncs we are querying
    Return
    MutableList<PeriodicSync!>! a list of PeriodicSync objects. This list may be empty but will never be null.

    getPersistedUriPermissions

    Added in API level 19
    open fun getPersistedUriPermissions(): MutableList<UriPermission!>

    Return list of all URI permission grants that have been persisted by the calling app. That is, the returned permissions have been granted to the calling app. Only persistable grants taken with takePersistableUriPermission(android.net.Uri,int) are returned.

    Note: Some of the returned URIs may not be usable until after the user is unlocked.

    Return
    MutableList<UriPermission!> This value cannot be null.

    getStreamTypes

    Added in API level 11
    open fun getStreamTypes(
        url: Uri,
        mimeTypeFilter: String
    ): Array<String!>?

    Query for the possible MIME types for the representations the given content URL can be returned when opened as as stream with #openTypedAssetFileDescriptor. Note that the types here are not necessarily a superset of the type returned by getType -- many content providers cannot return a raw stream for the structured data that they contain.

    Parameters
    url Uri: A Uri identifying content (either a list or specific type), using the content:// scheme. This value cannot be null.
    mimeTypeFilter String: The desired MIME type. This may be a pattern, such as */*, to query for all available MIME types that match the pattern. This value cannot be null.
    Return
    Array<String!>? Returns an array of MIME type strings for all available data streams that match the given mimeTypeFilter. If there are none, null is returned.

    getSyncAdapterTypes

    Added in API level 5
    open static fun getSyncAdapterTypes(): Array<SyncAdapterType!>!

    Get information about the SyncAdapters that are known to the system.

    Return
    Array<SyncAdapterType!>! an array of SyncAdapters that have registered with the system

    getSyncAutomatically

    Added in API level 5
    open static fun getSyncAutomatically(
        account: Account!,
        authority: String!
    ): Boolean

    Check if the provider should be synced when a network tickle is received

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_SETTINGS.

    Parameters
    account Account!: the account whose setting we are querying
    authority String!: the provider whose setting we are querying
    Return
    Boolean true if the provider should be synced when a network tickle is received

    getType

    Added in API level 1
    fun getType(url: Uri): String?

    Return the MIME type of the given content URL.

    Parameters
    url Uri: A Uri identifying content (either a list or specific type), using the content:// scheme. This value cannot be null.
    Return
    String? A MIME type for the content, or null if the URL is invalid or the type is unknown

    getTypeInfo

    Added in API level 29
    fun getTypeInfo(mimeType: String): ContentResolver.MimeTypeInfo

    Return a detailed description of the given MIME type, including an icon and label that describe the type.

    Parameters
    mimeType String: Valid, concrete MIME type. This value cannot be null.
    Return
    ContentResolver.MimeTypeInfo This value cannot be null.

    insert

    Added in API level 1
    fun insert(
        url: Uri,
        values: ContentValues?
    ): Uri?

    Inserts a row into a table at the given URL. If the content provider supports transactions the insertion will be atomic.

    Parameters
    url Uri: The URL of the table to insert into. This value cannot be null.
    values ContentValues?: The initial values for the newly inserted row. The key is the column name for the field. Passing an empty ContentValues will create an empty row. This value may be null.
    Return
    Uri? the URL of the newly created row. May return null if the underlying content provider returns null, or if it crashes.

    insert

    Added in API level 30
    fun insert(
        url: Uri,
        values: ContentValues?,
        extras: Bundle?
    ): Uri?

    Inserts a row into a table at the given URL. If the content provider supports transactions the insertion will be atomic.

    Parameters
    url Uri: The URL of the table to insert into. This value cannot be null.
    values ContentValues?: The initial values for the newly inserted row. The key is the column name for the field. Passing an empty ContentValues will create an empty row. This value may be null.
    extras Bundle?: A Bundle containing additional information necessary for the operation. Arguments may include SQL style arguments, such as ContentResolver#QUERY_ARG_SQL_LIMIT, but note that the documentation for each individual provider will indicate which arguments they support. This value may be null.
    Return
    Uri? the URL of the newly created row. May return null if the underlying content provider returns null, or if it crashes.
    Exceptions
    java.lang.IllegalArgumentException if the provider doesn't support one of the requested Bundle arguments.

    isSyncActive

    Added in API level 5
    open static fun isSyncActive(
        account: Account!,
        authority: String!
    ): Boolean

    Returns true if there is currently a sync operation for the given account or authority actively being processed.

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_STATS.

    Parameters
    account Account!: the account whose setting we are querying
    authority String!: the provider whose behavior is being queried
    Return
    Boolean true if a sync is active for the given account or authority.

    isSyncPending

    Added in API level 5
    open static fun isSyncPending(
        account: Account!,
        authority: String!
    ): Boolean

    Return true if the pending status is true of any matching authorities.

    This method requires the caller to hold the permission android.Manifest.permission#READ_SYNC_STATS.

    Parameters
    account Account!: the account whose setting we are querying
    authority String!: the provider whose behavior is being queried
    Return
    Boolean true if there is a pending sync with the matching account and authority

    loadThumbnail

    Added in API level 29
    open fun loadThumbnail(
        uri: Uri,
        size: Size,
        signal: CancellationSignal?
    ): Bitmap

    Convenience method that efficiently loads a visual thumbnail for the given Uri. Internally calls android.content.ContentProvider#openTypedAssetFile on the remote provider, but also defensively resizes any returned content to match the requested target size.

    Parameters
    uri Uri: The item that should be visualized as a thumbnail. This value cannot be null.
    size Size: The target area on the screen where this thumbnail will be shown. This is passed to the provider as EXTRA_SIZE to help it avoid downloading or generating heavy resources. This value cannot be null.
    signal CancellationSignal?: A signal to cancel the operation in progress. This value may be null.
    Return
    Bitmap Valid Bitmap which is a visual thumbnail. This value cannot be null.
    Exceptions
    java.io.IOException If any trouble was encountered while generating or loading the thumbnail, or if CancellationSignal#cancel() was invoked.

    notifyChange

    Added in API level 1
    open fun notifyChange(
        uri: Uri,
        observer: ContentObserver?
    ): Unit

    Notify registered observers that a row was updated and attempt to sync changes to the network.

    To observe events sent through this call, use registerContentObserver(android.net.Uri,boolean,android.database.ContentObserver).

    Starting in android.os.Build.VERSION_CODES#O, all content notifications must be backed by a valid ContentProvider.

    Parameters
    uri Uri: The uri of the content that was changed. This value cannot be null.
    observer ContentObserver?: The observer that originated the change, may be null. The observer that originated the change will only receive the notification if it has requested to receive self-change notifications by implementing ContentObserver#deliverSelfNotifications() to return true.

    notifyChange

    Added in API level 1
    Deprecated in API level 30
    open fun notifyChange(
        uri: Uri,
        observer: ContentObserver?,
        syncToNetwork: Boolean
    ): Unit

    Deprecated: callers should consider migrating to notifyChange(android.net.Uri,android.database.ContentObserver,int), as it offers support for many more options than just NOTIFY_SYNC_TO_NETWORK.

    Notify registered observers that a row was updated.

    To observe events sent through this call, use registerContentObserver(android.net.Uri,boolean,android.database.ContentObserver).

    If syncToNetwork is true, this will attempt to schedule a local sync using the sync adapter that's registered for the authority of the provided uri. No account will be passed to the sync adapter, so all matching accounts will be synchronized.

    Starting in android.os.Build.VERSION_CODES#O, all content notifications must be backed by a valid ContentProvider.

    Parameters
    uri Uri: The uri of the content that was changed. This value cannot be null.
    observer ContentObserver?: The observer that originated the change, may be null. The observer that originated the change will only receive the notification if it has requested to receive self-change notifications by implementing ContentObserver#deliverSelfNotifications() to return true.
    syncToNetwork Boolean: If true, same as NOTIFY_SYNC_TO_NETWORK.

    notifyChange

    Added in API level 24
    open fun notifyChange(
        uri: Uri,
        observer: ContentObserver?,
        flags: Int
    ): Unit

    Notify registered observers that a row was updated.

    To observe events sent through this call, use registerContentObserver(android.net.Uri,boolean,android.database.ContentObserver).

    If NOTIFY_SYNC_TO_NETWORK is set, this will attempt to schedule a local sync using the sync adapter that's registered for the authority of the provided uri. No account will be passed to the sync adapter, so all matching accounts will be synchronized.

    Starting in android.os.Build.VERSION_CODES#O, all content notifications must be backed by a valid ContentProvider.

    Parameters
    uri Uri: The uri of the content that was changed. This value cannot be null.
    observer ContentObserver?: The observer that originated the change, may be null. The observer that originated the change will only receive the notification if it has requested to receive self-change notifications by implementing ContentObserver#deliverSelfNotifications() to return true.
    flags Int: Additional flags: NOTIFY_SYNC_TO_NETWORK. Value is either 0 or a combination of android.content.ContentResolver#NOTIFY_SYNC_TO_NETWORK, android.content.ContentResolver#NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS, android.content.ContentResolver#NOTIFY_INSERT, android.content.ContentResolver#NOTIFY_UPDATE, and android.content.ContentResolver#NOTIFY_DELETE

    notifyChange

    Added in API level 30
    open fun notifyChange(
        uris: MutableCollection<Uri!>,
        observer: ContentObserver?,
        flags: Int
    ): Unit

    Notify registered observers that several rows have been updated.

    To observe events sent through this call, use registerContentObserver(android.net.Uri,boolean,android.database.ContentObserver).

    If NOTIFY_SYNC_TO_NETWORK is set, this will attempt to schedule a local sync using the sync adapter that's registered for the authority of the provided uri. No account will be passed to the sync adapter, so all matching accounts will be synchronized.

    Starting in android.os.Build.VERSION_CODES#O, all content notifications must be backed by a valid ContentProvider.

    Parameters
    uris MutableCollection<Uri!>: The uris of the content that was changed. This value cannot be null.
    observer ContentObserver?: The observer that originated the change, may be null. The observer that originated the change will only receive the notification if it has requested to receive self-change notifications by implementing ContentObserver#deliverSelfNotifications() to return true.
    flags Int: Flags such as NOTIFY_SYNC_TO_NETWORK or NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS. Value is either 0 or a combination of android.content.ContentResolver#NOTIFY_SYNC_TO_NETWORK, android.content.ContentResolver#NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS, android.content.ContentResolver#NOTIFY_INSERT, android.content.ContentResolver#NOTIFY_UPDATE, and android.content.ContentResolver#NOTIFY_DELETE

    openAssetFile

    Added in API level 29
    fun openAssetFile(
        uri: Uri,
        mode: String,
        signal: CancellationSignal?
    ): AssetFileDescriptor?
    Parameters
    uri Uri: This value cannot be null.
    mode String: This value cannot be null.
    signal CancellationSignal?: This value may be null.
    Return
    AssetFileDescriptor? This value may be null.

    openAssetFileDescriptor

    Added in API level 3
    fun openAssetFileDescriptor(
        uri: Uri,
        mode: String
    ): AssetFileDescriptor?

    Open a raw file descriptor to access data under a URI. This interacts with the underlying android.content.ContentProvider#openAssetFile method of the provider associated with the given URI, to retrieve any file stored there.

    Accepts the following URI schemes:
    The android.resource (SCHEME_ANDROID_RESOURCE) Scheme

    A Uri object can be used to reference a resource in an APK file. The Uri should be one of the following formats:

    • android.resource://package_name/id_number
      package_name is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
      id_number is the int form of the ID.
      The easiest way to construct this form is
      Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.raw.my_resource");
    • android.resource://package_name/type/name
      package_name is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
      type is the string form of the resource type. For example, raw or drawable. name is the string form of the resource name. That is, whatever the file name was in your res directory, without the type extension. The easiest way to construct this form is
      Uri uri = Uri.parse("android.resource://com.example.myapp/raw/my_resource");

    Note that if this function is called for read-only input (mode is "r") on a content: URI, it will instead call #openTypedAssetFileDescriptor for you with a MIME type of "*/*". This allows such callers to benefit from any built-in data conversion that a provider implements.

    Parameters
    uri Uri: The desired URI to open. This value cannot be null.
    mode String: The string representation of the file mode. Can be "r", "w", "wt", "wa", "rw" or "rwt". Please note the exact implementation of these may differ for each Provider implementation - for example, "w" may or may not truncate. This value cannot be null.
    Return
    AssetFileDescriptor? Returns a new ParcelFileDescriptor pointing to the file or null if the provider recently crashed. You own this descriptor and are responsible for closing it when done.
    Exceptions
    java.io.FileNotFoundException Throws FileNotFoundException of no file exists under the URI or the mode is invalid.

    openAssetFileDescriptor

    Added in API level 19
    fun openAssetFileDescriptor(
        uri: Uri,
        mode: String,
        cancellationSignal: CancellationSignal?
    ): AssetFileDescriptor?

    Open a raw file descriptor to access data under a URI. This interacts with the underlying android.content.ContentProvider#openAssetFile method of the provider associated with the given URI, to retrieve any file stored there.

    Accepts the following URI schemes:
    The android.resource (SCHEME_ANDROID_RESOURCE) Scheme

    A Uri object can be used to reference a resource in an APK file. The Uri should be one of the following formats:

    • android.resource://package_name/id_number
      package_name is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
      id_number is the int form of the ID.
      The easiest way to construct this form is
      Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.raw.my_resource");
    • android.resource://package_name/type/name
      package_name is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
      type is the string form of the resource type. For example, raw or drawable. name is the string form of the resource name. That is, whatever the file name was in your res directory, without the type extension. The easiest way to construct this form is
      Uri uri = Uri.parse("android.resource://com.example.myapp/raw/my_resource");

    Note that if this function is called for read-only input (mode is "r") on a content: URI, it will instead call #openTypedAssetFileDescriptor for you with a MIME type of "*/*". This allows such callers to benefit from any built-in data conversion that a provider implements.

    Parameters
    uri Uri: The desired URI to open. This value cannot be null.
    mode String: The string representation of the file mode. Can be "r", "w", "wt", "wa", "rw" or "rwt". Please note "w" is write only and "wt" is write and truncate. SeeParcelFileDescriptor#parseMode for more details. This value cannot be null.
    cancellationSignal CancellationSignal?: A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown.
    Return
    AssetFileDescriptor? Returns a new ParcelFileDescriptor pointing to the file or null if the provider recently crashed. You own this descriptor and are responsible for closing it when done.
    Exceptions
    java.io.FileNotFoundException Throws FileNotFoundException of no file exists under the URI or the mode is invalid.

    openFile

    Added in API level 29
    fun openFile(
        uri: Uri,
        mode: String,
        signal: CancellationSignal?
    ): ParcelFileDescriptor?
    Parameters
    uri Uri: This value cannot be null.
    mode String: This value cannot be null.
    signal CancellationSignal?: This value may be null.
    Return
    ParcelFileDescriptor? This value may be null.

    openFileDescriptor

    Added in API level 1
    fun openFileDescriptor(
        uri: Uri,
        mode: String
    ): ParcelFileDescriptor?

    Open a raw file descriptor to access data under a URI. This is like openAssetFileDescriptor(android.net.Uri,java.lang.String), but uses the underlying android.content.ContentProvider#openFile ContentProvider.openFile()} method, so will not work with providers that return sub-sections of files. If at all possible, you should use openAssetFileDescriptor(android.net.Uri,java.lang.String). You will receive a FileNotFoundException exception if the provider returns a sub-section of a file.

    Accepts the following URI schemes:

    See openAssetFileDescriptor(android.net.Uri,java.lang.String) for more information on these schemes.

    If opening with the exclusive "r" or "w" modes, the returned ParcelFileDescriptor could be a pipe or socket pair to enable streaming of data. Opening with the "rw" mode implies a file on disk that supports seeking. If possible, always use an exclusive mode to give the underlying ContentProvider the most flexibility.

    If you are writing a file, and need to communicate an error to the provider, use ParcelFileDescriptor#closeWithError(String).

    Parameters
    uri Uri: The desired URI to open. This value cannot be null.
    mode String: The string representation of the file mode. Can be "r", "w", "wt", "wa", "rw" or "rwt". Please note the exact implementation of these may differ for each Provider implementation - for example, "w" may or may not truncate. This value cannot be null.
    Return
    ParcelFileDescriptor? Returns a new ParcelFileDescriptor pointing to the file or null if the provider recently crashed. You own this descriptor and are responsible for closing it when done.
    Exceptions
    java.io.FileNotFoundException Throws FileNotFoundException if no file exists under the URI or the mode is invalid.

    openFileDescriptor

    Added in API level 19
    fun openFileDescriptor(
        uri: Uri,
        mode: String,
        cancellationSignal: CancellationSignal?
    ): ParcelFileDescriptor?

    Open a raw file descriptor to access data under a URI. This is like openAssetFileDescriptor(android.net.Uri,java.lang.String), but uses the underlying android.content.ContentProvider#openFile ContentProvider.openFile()} method, so will not work with providers that return sub-sections of files. If at all possible, you should use openAssetFileDescriptor(android.net.Uri,java.lang.String). You will receive a FileNotFoundException exception if the provider returns a sub-section of a file.

    Accepts the following URI schemes:

    See openAssetFileDescriptor(android.net.Uri,java.lang.String) for more information on these schemes.

    If opening with the exclusive "r" or "w" modes, the returned ParcelFileDescriptor could be a pipe or socket pair to enable streaming of data. Opening with the "rw" mode implies a file on disk that supports seeking. If possible, always use an exclusive mode to give the underlying ContentProvider the most flexibility.

    If you are writing a file, and need to communicate an error to the provider, use ParcelFileDescriptor#closeWithError(String).

    Parameters
    uri Uri: The desired URI to open. This value cannot be null.
    mode String: The string representation of the file mode. Can be "r", "w", "wt", "wa", "rw" or "rwt". Please note the exact implementation of these may differ for each Provider implementation - for example, "w" may or may not truncate. This value cannot be null.
    cancellationSignal CancellationSignal?: A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown.
    Return
    ParcelFileDescriptor? Returns a new ParcelFileDescriptor pointing to the file or null if the provider recently crashed. You own this descriptor and are responsible for closing it when done.
    Exceptions
    java.io.FileNotFoundException Throws FileNotFoundException if no file exists under the URI or the mode is invalid.

    openInputStream

    Added in API level 1
    fun openInputStream(uri: Uri): InputStream?

    Open a stream on to the content associated with a content URI. If there is no data associated with the URI, FileNotFoundException is thrown.

    Accepts the following URI schemes:

    See openAssetFileDescriptor(android.net.Uri,java.lang.String) for more information on these schemes.

    Parameters
    uri Uri: The desired URI. This value cannot be null.
    Return
    InputStream? InputStream or null if the provider recently crashed.
    Exceptions
    java.io.FileNotFoundException if the provided URI could not be opened.

    openOutputStream

    Added in API level 1
    fun openOutputStream(uri: Uri): OutputStream?

    Synonym for openOutputStream(uri, "w"). Please note the implementation of "w" is up to each Provider implementation and it may or may not truncate.

    Parameters
    uri Uri: The desired URI. This value cannot be null.
    Return
    OutputStream? an OutputStream or null if the provider recently crashed.
    Exceptions
    java.io.FileNotFoundException if the provided URI could not be opened.

    openOutputStream

    Added in API level 3
    fun openOutputStream(
        uri: Uri,
        mode: String
    ): OutputStream?

    Open a stream on to the content associated with a content URI. If there is no data associated with the URI, FileNotFoundException is thrown.

    Accepts the following URI schemes:

    See openAssetFileDescriptor(android.net.Uri,java.lang.String) for more information on these schemes.

    Parameters
    uri Uri: The desired URI. This value cannot be null.
    mode String: The string representation of the file mode. Can be "r", "w", "wt", "wa", "rw" or "rwt". Please note the exact implementation of these may differ for each Provider implementation - for example, "w" may or may not truncate. This value cannot be null.
    Return
    OutputStream? an OutputStream or null if the provider recently crashed.
    Exceptions
    java.io.FileNotFoundException if the provided URI could not be opened.

    openTypedAssetFile

    Added in API level 29
    fun openTypedAssetFile(
        uri: Uri,
        mimeTypeFilter: String,
        opts: Bundle?,
        signal: CancellationSignal?
    ): AssetFileDescriptor?
    Parameters
    uri Uri: This value cannot be null.
    mimeTypeFilter String: This value cannot be null.
    opts Bundle?: This value may be null.
    signal CancellationSignal?: This value may be null.
    Return
    AssetFileDescriptor? This value may be null.

    openTypedAssetFileDescriptor

    Added in API level 11
    fun openTypedAssetFileDescriptor(
        uri: Uri,
        mimeType: String,
        opts: Bundle?
    ): AssetFileDescriptor?

    Open a raw file descriptor to access (potentially type transformed) data from a "content:" URI. This interacts with the underlying android.content.ContentProvider#openTypedAssetFile method of the provider associated with the given URI, to retrieve retrieve any appropriate data stream for the data stored there.

    Unlike #openAssetFileDescriptor, this function only works with "content:" URIs, because content providers are the only facility with an associated MIME type to ensure that the returned data stream is of the desired type.

    All text/* streams are encoded in UTF-8.

    Parameters
    uri Uri: The desired URI to open. This value cannot be null.
    mimeType String: The desired MIME type of the returned data. This can be a pattern such as */*, which will allow the content provider to select a type, though there is no way for you to determine what type it is returning. This value cannot be null.
    opts Bundle?: Additional provider-dependent options. This value may be null.
    Return
    AssetFileDescriptor? Returns a new ParcelFileDescriptor from which you can read the data stream from the provider or null if the provider recently crashed. Note that this may be a pipe, meaning you can't seek in it. The only seek you should do is if the AssetFileDescriptor contains an offset, to move to that offset before reading. You own this descriptor and are responsible for closing it when done.
    Exceptions
    java.io.FileNotFoundException Throws FileNotFoundException of no data of the desired type exists under the URI.

    openTypedAssetFileDescriptor

    Added in API level 19
    fun openTypedAssetFileDescriptor(
        uri: Uri,
        mimeType: String,
        opts: Bundle?,
        cancellationSignal: CancellationSignal?
    ): AssetFileDescriptor?

    Open a raw file descriptor to access (potentially type transformed) data from a "content:" URI. This interacts with the underlying android.content.ContentProvider#openTypedAssetFile method of the provider associated with the given URI, to retrieve any appropriate data stream for the data stored there.

    Unlike #openAssetFileDescriptor, this function only works with "content:" URIs, because content providers are the only facility with an associated MIME type to ensure that the returned data stream is of the desired type.

    All text/* streams are encoded in UTF-8.

    Parameters
    uri Uri: The desired URI to open. This value cannot be null.
    mimeType String: The desired MIME type of the returned data. This can be a pattern such as */*, which will allow the content provider to select a type, though there is no way for you to determine what type it is returning. This value cannot be null.
    opts Bundle?: Additional provider-dependent options. This value may be null.
    cancellationSignal CancellationSignal?: A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown.
    Return
    AssetFileDescriptor? Returns a new ParcelFileDescriptor from which you can read the data stream from the provider or null if the provider recently crashed. Note that this may be a pipe, meaning you can't seek in it. The only seek you should do is if the AssetFileDescriptor contains an offset, to move to that offset before reading. You own this descriptor and are responsible for closing it when done.
    Exceptions
    java.io.FileNotFoundException Throws FileNotFoundException of no data of the desired type exists under the URI.

    query

    Added in API level 1
    fun query(
        uri: Uri,
        projection: Array<String!>?,
        selection: String?,
        selectionArgs: Array<String!>?,
        sortOrder: String?
    ): Cursor?

    Query the given URI, returning a Cursor over the result set.

    For best performance, the caller should follow these guidelines:

    • Provide an explicit projection, to prevent reading data from storage that aren't going to be used.
    • Use question mark parameter markers such as 'phone=?' instead of explicit values in the selection parameter, so that queries that differ only by those values will be recognized as the same for caching purposes.

    Parameters
    uri Uri: The URI, using the content:// scheme, for the content to retrieve. This value cannot be null.
    projection Array<String!>?: A list of which columns to return. Passing null will return all columns, which is inefficient.
    selection String?: A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI.
    selectionArgs Array<String!>?: You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings. This value may be null.
    sortOrder String?: How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered.
    Return
    Cursor? A Cursor object, which is positioned before the first entry. May return null if the underlying content provider returns null, or if it crashes.

    query

    Added in API level 16
    fun query(
        uri: Uri,
        projection: Array<String!>?,
        selection: String?,
        selectionArgs: Array<String!>?,
        sortOrder: String?,
        cancellationSignal: CancellationSignal?
    ): Cursor?

    Query the given URI, returning a Cursor over the result set with optional support for cancellation.

    For best performance, the caller should follow these guidelines:

    • Provide an explicit projection, to prevent reading data from storage that aren't going to be used.
    • Use question mark parameter markers such as 'phone=?' instead of explicit values in the selection parameter, so that queries that differ only by those values will be recognized as the same for caching purposes.

    Parameters
    uri Uri: The URI, using the content:// scheme, for the content to retrieve. This value cannot be null.
    projection Array<String!>?: A list of which columns to return. Passing null will return all columns, which is inefficient.
    selection String?: A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI.
    selectionArgs Array<String!>?: You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings. This value may be null.
    sortOrder String?: How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered.
    cancellationSignal CancellationSignal?: A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown when the query is executed.
    Return
    Cursor? A Cursor object, which is positioned before the first entry. May return null if the underlying content provider returns null, or if it crashes.

    query

    Added in API level 26
    fun query(
        uri: Uri,
        projection: Array<String!>?,
        queryArgs: Bundle?,
        cancellationSignal: CancellationSignal?
    ): Cursor?

    Query the given URI, returning a Cursor over the result set with support for cancellation.

    For best performance, the caller should follow these guidelines:

  • Provide an explicit projection, to prevent reading data from storage that aren't going to be used. Provider must identify which QUERY_ARG_SORT* arguments were honored during the preparation of the result set by including the respective argument keys in the Cursor extras Bundle. See EXTRA_HONORED_ARGS for details.
  • Parameters
    uri Uri: The URI, using the content:// scheme, for the content to retrieve. This value cannot be null.
    projection Array<String!>?: A list of which columns to return. Passing null will return all columns, which is inefficient.
    queryArgs Bundle?: A Bundle containing additional information necessary for the operation. Arguments may include SQL style arguments, such as ContentResolver#QUERY_ARG_SQL_LIMIT, but note that the documentation for each individual provider will indicate which arguments they support. This value may be null.
    cancellationSignal CancellationSignal?: A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown when the query is executed.
    Return
    Cursor? A Cursor object, which is positioned before the first entry. May return null if the underlying content provider returns null, or if it crashes.

    refresh

    Added in API level 26
    fun refresh(
        url: Uri,
        extras: Bundle?,
        cancellationSignal: CancellationSignal?
    ): Boolean

    This allows clients to request an explicit refresh of content identified by uri.

    Client code should only invoke this method when there is a strong indication (such as a user initiated pull to refresh gesture) that the content is stale.

    Parameters
    url Uri: The Uri identifying the data to refresh. This value cannot be null.
    extras Bundle?: Additional options from the client. The definitions of these are specific to the content provider being called. This value may be null.
    cancellationSignal CancellationSignal?: A signal to cancel the operation in progress, or null if none. For example, if you called refresh on a particular uri, you should call CancellationSignal#throwIfCanceled() to check whether the client has canceled the refresh request.
    Return
    Boolean true if the provider actually tried refreshing.

    registerContentObserver

    Added in API level 1
    fun registerContentObserver(
        uri: Uri,
        notifyForDescendants: Boolean,
        observer: ContentObserver
    ): Unit

    Register an observer class that gets callbacks when data identified by a given content URI changes.

    Starting in android.os.Build.VERSION_CODES#O, all content notifications must be backed by a valid ContentProvider.

    Parameters
    uri Uri: The URI to watch for changes. This can be a specific row URI, or a base URI for a whole class of content. This value cannot be null.
    notifyForDescendants Boolean: When false, the observer will be notified whenever a change occurs to the exact URI specified by uri or to one of the URI's ancestors in the path hierarchy. When true, the observer will also be notified whenever a change occurs to the URI's descendants in the path hierarchy.
    observer ContentObserver: The object that receives callbacks when changes occur. This value cannot be null.

    releasePersistableUriPermission

    Added in API level 19
    open fun releasePersistableUriPermission(
        uri: Uri,
        modeFlags: Int
    ): Unit

    Relinquish a persisted URI permission grant. The URI must have been previously made persistent with takePersistableUriPermission(android.net.Uri,int). Any non-persistent grants to the calling package will remain intact.

    Parameters
    uri Uri: This value cannot be null.
    modeFlags Int: Value is either 0 or a combination of android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION, and android.content.Intent#FLAG_GRANT_WRITE_URI_PERMISSION

    removePeriodicSync

    Added in API level 8
    open static fun removePeriodicSync(
        account: Account!,
        authority: String!,
        extras: Bundle!
    ): Unit

    Remove a periodic sync. Has no affect if account, authority and extras don't match an existing periodic sync.

    This method requires the caller to hold the permission android.Manifest.permission#WRITE_SYNC_SETTINGS.

    Parameters
    account Account!: the account of the periodic sync to remove
    authority String!: the provider of the periodic sync to remove
    extras Bundle!: the extras of the periodic sync to remove

    removeStatusChangeListener

    Added in API level 5
    open static fun removeStatusChangeListener(handle: Any!): Unit

    Remove a previously registered status change listener.

    Parameters
    handle Any!: the handle that was returned by addStatusChangeListener

    requestSync

    Added in API level 5
    open static fun requestSync(
        account: Account!,
        authority: String!,
        extras: Bundle!
    ): Unit

    Start an asynchronous sync operation. If you want to monitor the progress of the sync you may register a SyncObserver. Only values of the following types may be used in the extras bundle:

    • Integer
    • Long
    • Boolean
    • Float
    • Double
    • String
    • Account
    • null

    Parameters
    account Account!: which account should be synced
    authority String!: which authority should be synced
    extras Bundle!: any extras to pass to the SyncAdapter.

    requestSync

    Added in API level 19
    open static fun requestSync(request: SyncRequest!): Unit

    Register a sync with the SyncManager. These requests are built using the SyncRequest.Builder.

    setIsSyncable

    Added in API level 5
    open static fun setIsSyncable(
        account: Account!,
        authority: String!,
        syncable: Int
    ): Unit

    Set whether this account/provider is syncable.

    This method requires the caller to hold the permission android.Manifest.permission#WRITE_SYNC_SETTINGS.

    Parameters
    syncable Int: >0 denotes syncable, 0 means not syncable, <0 means unknown

    setMasterSyncAutomatically

    Added in API level 5
    open static fun setMasterSyncAutomatically(sync: Boolean): Unit

    Sets the global auto-sync setting that applies to all the providers and accounts. If this is false then the per-provider auto-sync setting is ignored.

    This method requires the caller to hold the permission android.Manifest.permission#WRITE_SYNC_SETTINGS.

    Parameters
    sync Boolean: the global auto-sync setting that applies to all the providers and accounts

    setSyncAutomatically

    Added in API level 5
    open static fun setSyncAutomatically(
        account: Account!,
        authority: String!,
        sync: Boolean
    ): Unit

    Set whether or not the provider is synced when it receives a network tickle.

    This method requires the caller to hold the permission android.Manifest.permission#WRITE_SYNC_SETTINGS.

    Parameters
    account Account!: the account whose setting we are querying
    authority String!: the provider whose behavior is being controlled
    sync Boolean: true if the provider should be synced when tickles are received for it

    startSync

    Added in API level 1
    Deprecated in API level 15
    open fun startSync(
        uri: Uri!,
        extras: Bundle!
    ): Unit

    Deprecated: instead use requestSync(android.accounts.Account,java.lang.String,android.os.Bundle)

    Start an asynchronous sync operation. If you want to monitor the progress of the sync you may register a SyncObserver. Only values of the following types may be used in the extras bundle:

    • Integer
    • Long
    • Boolean
    • Float
    • Double
    • String
    • Account
    • null

    Parameters
    uri Uri!: the uri of the provider to sync or null to sync all providers.
    extras Bundle!: any extras to pass to the SyncAdapter.

    takePersistableUriPermission

    Added in API level 19
    open fun takePersistableUriPermission(
        uri: Uri,
        modeFlags: Int
    ): Unit

    Take a persistable URI permission grant that has been offered. Once taken, the permission grant will be remembered across device reboots. Only URI permissions granted with Intent#FLAG_GRANT_PERSISTABLE_URI_PERMISSION can be persisted. If the grant has already been persisted, taking it again will touch UriPermission#getPersistedTime().

    Parameters
    uri Uri: This value cannot be null.
    modeFlags Int: Value is either 0 or a combination of android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION, and android.content.Intent#FLAG_GRANT_WRITE_URI_PERMISSION

    uncanonicalize

    Added in API level 19
    fun uncanonicalize(url: Uri): Uri?

    Given a canonical Uri previously generated by canonicalize, convert it to its local non-canonical form. This can be useful in some cases where you know that you will only be using the Uri in the current environment and want to avoid any possible overhead when using it with the content provider or want to verify that the referenced data exists at all in the new environment.

    Parameters
    url Uri: The canonical Uri that is to be convered back to its non-canonical form. This value cannot be null.
    Return
    Uri? Returns the non-canonical representation of url. This will return null if data identified by the canonical Uri can not be found in the current environment; callers must always check for null and deal with that by appropriately falling back to an alternative.

    See Also

    unregisterContentObserver

    Added in API level 1
    fun unregisterContentObserver(observer: ContentObserver): Unit

    Unregisters a change observer.

    Parameters
    observer ContentObserver: The previously registered observer that is no longer needed. This value cannot be null.

    update

    Added in API level 1
    fun update(
        uri: Uri,
        values: ContentValues?,
        where: String?,
        selectionArgs: Array<String!>?
    ): Int

    Update row(s) in a content URI. If the content provider supports transactions the update will be atomic.

    Parameters
    uri Uri: The URI to modify. This value cannot be null.
    values ContentValues?: The new field values. The key is the column name for the field. A null value will remove an existing field value.
    where String?: A filter to apply to rows before updating, formatted as an SQL WHERE clause (excluding the WHERE itself). This value may be null.
    selectionArgs Array<String!>?: This value may be null.
    Return
    Int the number of rows updated.
    Exceptions
    java.lang.NullPointerException if uri or values are null

    update

    Added in API level 30
    fun update(
        uri: Uri,
        values: ContentValues?,
        extras: Bundle?
    ): Int

    Update row(s) in a content URI. If the content provider supports transactions the update will be atomic.

    Parameters
    uri Uri: The URI to modify. This value cannot be null.
    values ContentValues?: The new field values. The key is the column name for the field. A null value will remove an existing field value.
    extras Bundle?: A Bundle containing additional information necessary for the operation. Arguments may include SQL style arguments, such as ContentResolver#QUERY_ARG_SQL_LIMIT, but note that the documentation for each individual provider will indicate which arguments they support. This value may be null.
    Return
    Int the number of rows updated.
    Exceptions
    java.lang.NullPointerException if uri or values are null
    java.lang.IllegalArgumentException if the provider doesn't support one of the requested Bundle arguments.

    validateSyncExtrasBundle

    Added in API level 1
    open static fun validateSyncExtrasBundle(extras: Bundle!): Unit

    Check that only values of the following types are in the Bundle:

    • Integer
    • Long
    • Boolean
    • Float
    • Double
    • String
    • Account
    • null

    Parameters
    extras Bundle!: the Bundle to check

    wrap

    Added in API level 29
    open static fun wrap(wrapped: ContentProvider): ContentResolver

    Create a ContentResolver instance that redirects all its methods to the given ContentProvider.

    Parameters
    wrapped ContentProvider: This value cannot be null.
    Return
    ContentResolver This value cannot be null.

    wrap

    Added in API level 29
    open static fun wrap(wrapped: ContentProviderClient): ContentResolver

    Create a ContentResolver instance that redirects all its methods to the given ContentProviderClient.

    Parameters
    wrapped ContentProviderClient: This value cannot be null.
    Return
    ContentResolver This value cannot be null.