ContentResolver
  public
  
  
  abstract
  class
  ContentResolver
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.content.ContentResolver | 
This class provides applications access to the content model.
Developer Guides
For more information about using a ContentResolver with content providers, read the Content Providers developer guide.
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | ContentResolver.MimeTypeInfoDetailed description of a specific MIME type, including an icon and label that describe the type. | 
| Constants | |
|---|---|
| String | ANY_CURSOR_ITEM_TYPEThis is the Android platform's generic MIME type to match any MIME
 type of the form " | 
| String | CURSOR_DIR_BASE_TYPEThis is the Android platform's base MIME type for a content: URI containing a Cursor of zero or more items. | 
| String | CURSOR_ITEM_BASE_TYPEThis is the Android platform's base MIME type for a content: URI containing a Cursor of a single item. | 
| String | EXTRA_HONORED_ARGSAllows provider to report back to client which query keys are honored in a Cursor. | 
| String | EXTRA_REFRESH_SUPPORTEDAn extra boolean describing whether a particular provider supports refresh or not. | 
| String | EXTRA_SIZEAn extra  | 
| String | EXTRA_TOTAL_COUNTAdded to  | 
| int | NOTIFY_DELETEFlag for  | 
| int | NOTIFY_INSERTFlag for  | 
| int | NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTSFlag for  | 
| int | NOTIFY_SYNC_TO_NETWORKFlag for  | 
| int | NOTIFY_UPDATEFlag for  | 
| String | QUERY_ARG_GROUP_COLUMNSSpecifies the list of columns (stored as a  | 
| String | QUERY_ARG_LIMITSpecifies the max number of rows to include in a Cursor. | 
| String | QUERY_ARG_OFFSETSpecifies the offset row index within a Cursor. | 
| String | QUERY_ARG_SORT_COLLATIONAllows client to specify a hint to the provider declaring which collation to use when sorting values. | 
| String | QUERY_ARG_SORT_COLUMNSSpecifies the list of columns (stored as a  | 
| String | QUERY_ARG_SORT_DIRECTIONSpecifies desired sort order. | 
| String | QUERY_ARG_SORT_LOCALEAllows client to specify a hint to the provider declaring which locale to use when sorting values. | 
| String | QUERY_ARG_SQL_GROUP_BYKey for an SQL style  | 
| String | QUERY_ARG_SQL_HAVINGKey for an SQL style  | 
| String | QUERY_ARG_SQL_LIMITKey for an SQL style  | 
| String | QUERY_ARG_SQL_SELECTIONKey for an SQL style selection string that may be present in the query Bundle argument
 passed to  | 
| String | QUERY_ARG_SQL_SELECTION_ARGSKey for SQL selection string arguments list. | 
| String | QUERY_ARG_SQL_SORT_ORDERKey for an SQL style sort string that may be present in the query Bundle argument
 passed to  | 
| int | QUERY_SORT_DIRECTION_ASCENDING
 | 
| int | QUERY_SORT_DIRECTION_DESCENDING
 | 
| String | SCHEME_ANDROID_RESOURCE
 | 
| String | SCHEME_CONTENT
 | 
| String | SCHEME_FILE
 | 
| String | SYNC_EXTRAS_ACCOUNT
      This constant was deprecated
      in API level 15.
    instead use
  | 
| String | SYNC_EXTRAS_DISCARD_LOCAL_DELETIONSIndicates that the sync adapter should not proceed with the delete operations, if it determines that there are too many. | 
| String | SYNC_EXTRAS_DO_NOT_RETRYIf this extra is set to true then the request will not be retried if it fails. | 
| String | SYNC_EXTRAS_EXPEDITEDIf 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. | 
| String | SYNC_EXTRAS_FORCE
      This constant was deprecated
      in API level 15.
    instead use
  | 
| String | SYNC_EXTRAS_IGNORE_BACKOFFIf this extra is set to true then any backoffs for the initial attempt (e.g. due to retries) are ignored by the sync scheduler. | 
| String | SYNC_EXTRAS_IGNORE_SETTINGSIf this extra is set to true then the sync settings (like getSyncAutomatically()) are ignored by the sync scheduler. | 
| String | SYNC_EXTRAS_INITIALIZESet by the SyncManager to request that the SyncAdapter initialize itself for the given account/authority pair. | 
| String | SYNC_EXTRAS_MANUALSetting this extra is the equivalent of setting both  | 
| String | SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONSIndicates that the sync adapter should proceed with the delete operations, even if it determines that there are too many. | 
| String | SYNC_EXTRAS_REQUIRE_CHARGINGIf this extra is set to true, the sync request will be scheduled only when the device is plugged in. | 
| String | SYNC_EXTRAS_SCHEDULE_AS_EXPEDITED_JOBRun this sync operation as an "expedited job"
 (see  | 
| String | SYNC_EXTRAS_UPLOADIndicates that this sync is intended to only upload local changes to the server. | 
| int | SYNC_OBSERVER_TYPE_ACTIVE
 | 
| int | SYNC_OBSERVER_TYPE_PENDING
 | 
| int | SYNC_OBSERVER_TYPE_SETTINGS
 | 
| Public constructors | |
|---|---|
| 
      ContentResolver(Context context)
      Note: passing a  | |
| Public methods | |
|---|---|
| 
        
        
        
        final
        
        ContentProviderClient | 
      acquireContentProviderClient(Uri uri)
      Returns a  | 
| 
        
        
        
        final
        
        ContentProviderClient | 
      acquireContentProviderClient(String name)
      Returns a  | 
| 
        
        
        
        final
        
        ContentProviderClient | 
      acquireUnstableContentProviderClient(String name)
      Like  | 
| 
        
        
        
        final
        
        ContentProviderClient | 
      acquireUnstableContentProviderClient(Uri uri)
      Like  | 
| 
        
        
        static
        
        
        void | 
      addPeriodicSync(Account account, String authority, Bundle extras, long pollFrequency)
      Specifies that a sync should be requested with the specified the account, authority, and extras at the given frequency. | 
| 
        
        
        static
        
        
        Object | 
      addStatusChangeListener(int mask, SyncStatusObserver callback)
      Request notifications when the different aspects of the SyncManager change. | 
| 
        
        
        
        
        
        ContentProviderResult[] | 
      applyBatch(String authority, ArrayList<ContentProviderOperation> operations)
      Applies each of the  | 
| 
        
        
        
        final
        
        int | 
      bulkInsert(Uri url, ContentValues[] values)
      Inserts multiple rows into a table at the given URL. | 
| 
        
        
        
        final
        
        Bundle | 
      call(Uri uri, String method, String arg, Bundle extras)
      Call a provider-defined method. | 
| 
        
        
        
        final
        
        Bundle | 
      call(String authority, String method, String arg, Bundle extras)
      
 | 
| 
        
        
        
        
        
        void | 
      cancelSync(Uri uri)
      
      This method was deprecated
      in API level 15.
    instead use  | 
| 
        
        
        static
        
        
        void | 
      cancelSync(SyncRequest request)
      Remove the specified sync. | 
| 
        
        
        static
        
        
        void | 
      cancelSync(Account account, String authority)
      Cancel any active or pending syncs that match account and authority. | 
| 
        
        
        
        final
        
        Uri | 
      canonicalize(Uri url)
      Transform the given url to a canonical representation of its referenced resource, which can be used across devices, persisted, backed up and restored, etc. | 
| 
        
        
        
        final
        
        int | 
      delete(Uri url, String where, String[] selectionArgs)
      Deletes row(s) specified by a content URI. | 
| 
        
        
        
        final
        
        int | 
      delete(Uri url, Bundle extras)
      Deletes row(s) specified by a content URI. | 
| 
        
        
        static
        
        
        SyncInfo | 
      getCurrentSync()
      
      This method was deprecated
      in API level 15.
    Since multiple concurrent syncs are now supported you should use
  | 
| 
        
        
        static
        
        
        List<SyncInfo> | 
      getCurrentSyncs()
      Returns a list with information about all the active syncs. | 
| 
        
        
        static
        
        
        int | 
      getIsSyncable(Account account, String authority)
      Check if this account/provider is syncable. | 
| 
        
        
        static
        
        
        boolean | 
      getMasterSyncAutomatically()
      Gets the global auto-sync setting that applies to all the providers and accounts. | 
| 
        
        
        
        
        
        List<UriPermission> | 
      getOutgoingPersistedUriPermissions()
      Return list of all persisted URI permission grants that are hosted by the calling app. | 
| 
        
        
        static
        
        
        List<PeriodicSync> | 
      getPeriodicSyncs(Account account, String authority)
      Get the list of information about the periodic syncs for the given account and authority. | 
| 
        
        
        
        
        
        List<UriPermission> | 
      getPersistedUriPermissions()
      Return list of all URI permission grants that have been persisted by the calling app. | 
| 
        
        
        
        
        
        String[] | 
      getStreamTypes(Uri url, String mimeTypeFilter)
      Query for the possible MIME types for the representations the given
 content URL can be returned when opened as as stream with
  | 
| 
        
        
        static
        
        
        SyncAdapterType[] | 
      getSyncAdapterTypes()
      Get information about the SyncAdapters that are known to the system. | 
| 
        
        
        static
        
        
        boolean | 
      getSyncAutomatically(Account account, String authority)
      Check if the provider should be synced when a network tickle is received This method requires the caller to hold the permission
  | 
| 
        
        
        
        final
        
        String | 
      getType(Uri url)
      Return the MIME type of the given content URL. | 
| 
        
        
        
        final
        
        ContentResolver.MimeTypeInfo | 
      getTypeInfo(String mimeType)
      Return a detailed description of the given MIME type, including an icon and label that describe the type. | 
| 
        
        
        
        final
        
        Uri | 
      insert(Uri url, ContentValues values, Bundle extras)
      Inserts a row into a table at the given URL. | 
| 
        
        
        
        final
        
        Uri | 
      insert(Uri url, ContentValues values)
      Inserts a row into a table at the given URL. | 
| 
        
        
        static
        
        
        boolean | 
      isSyncActive(Account account, String authority)
      Returns true if there is currently a sync operation for the given account or authority actively being processed. | 
| 
        
        
        static
        
        
        boolean | 
      isSyncPending(Account account, String authority)
      Return true if the pending status is true of any matching authorities. | 
| 
        
        
        
        
        
        Bitmap | 
      loadThumbnail(Uri uri, Size size, CancellationSignal signal)
      Convenience method that efficiently loads a visual thumbnail for the
 given  | 
| 
        
        
        
        
        
        void | 
      notifyChange(Collection<Uri> uris, ContentObserver observer, int flags)
      Notify registered observers that several rows have been updated. | 
| 
        
        
        
        
        
        void | 
      notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork)
      
      This method was deprecated
      in API level 30.
    callers should consider migrating to
              | 
| 
        
        
        
        
        
        void | 
      notifyChange(Uri uri, ContentObserver observer, int flags)
      Notify registered observers that a row was updated. | 
| 
        
        
        
        
        
        void | 
      notifyChange(Uri uri, ContentObserver observer)
      Notify registered observers that a row was updated and attempt to sync changes to the network. | 
| 
        
        
        
        final
        
        AssetFileDescriptor | 
      openAssetFile(Uri uri, String mode, CancellationSignal signal)
      
 | 
| 
        
        
        
        final
        
        AssetFileDescriptor | 
      openAssetFileDescriptor(Uri uri, String mode, CancellationSignal cancellationSignal)
      Open a raw file descriptor to access data under a URI. | 
| 
        
        
        
        final
        
        AssetFileDescriptor | 
      openAssetFileDescriptor(Uri uri, String mode)
      Open a raw file descriptor to access data under a URI. | 
| 
        
        
        
        final
        
        ParcelFileDescriptor | 
      openFile(Uri uri, String mode, CancellationSignal signal)
      
 | 
| 
        
        
        
        final
        
        ParcelFileDescriptor | 
      openFileDescriptor(Uri uri, String mode, CancellationSignal cancellationSignal)
      Open a raw file descriptor to access data under a URI. | 
| 
        
        
        
        final
        
        ParcelFileDescriptor | 
      openFileDescriptor(Uri uri, String mode)
      Open a raw file descriptor to access data under a URI. | 
| 
        
        
        
        final
        
        InputStream | 
      openInputStream(Uri uri)
      Open a stream on to the content associated with a content URI. | 
| 
        
        
        
        final
        
        OutputStream | 
      openOutputStream(Uri uri)
      Synonym for  | 
| 
        
        
        
        final
        
        OutputStream | 
      openOutputStream(Uri uri, String mode)
      Open a stream on to the content associated with a content URI. | 
| 
        
        
        
        final
        
        AssetFileDescriptor | 
      openTypedAssetFile(Uri uri, String mimeTypeFilter, Bundle opts, CancellationSignal signal)
      
 | 
| 
        
        
        
        final
        
        AssetFileDescriptor | 
      openTypedAssetFileDescriptor(Uri uri, String mimeType, Bundle opts, CancellationSignal cancellationSignal)
      Open a raw file descriptor to access (potentially type transformed) data from a "content:" URI. | 
| 
        
        
        
        final
        
        AssetFileDescriptor | 
      openTypedAssetFileDescriptor(Uri uri, String mimeType, Bundle opts)
      Open a raw file descriptor to access (potentially type transformed) data from a "content:" URI. | 
| 
        
        
        
        final
        
        Cursor | 
      query(Uri uri, String[] projection, Bundle queryArgs, CancellationSignal cancellationSignal)
      Query the given URI, returning a  | 
| 
        
        
        
        final
        
        Cursor | 
      query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal)
      Query the given URI, returning a  | 
| 
        
        
        
        final
        
        Cursor | 
      query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
      Query the given URI, returning a  | 
| 
        
        
        
        final
        
        boolean | 
      refresh(Uri url, Bundle extras, CancellationSignal cancellationSignal)
      This allows clients to request an explicit refresh of content identified
 by  | 
| 
        
        
        
        final
        
        void | 
      registerContentObserver(Uri uri, boolean notifyForDescendants, ContentObserver observer)
      Register an observer class that gets callbacks when data identified by a given content URI changes. | 
| 
        
        
        
        
        
        void | 
      releasePersistableUriPermission(Uri uri, int modeFlags)
      Relinquish a persisted URI permission grant. | 
| 
        
        
        static
        
        
        void | 
      removePeriodicSync(Account account, String authority, Bundle extras)
      Remove a periodic sync. | 
| 
        
        
        static
        
        
        void | 
      removeStatusChangeListener(Object handle)
      Remove a previously registered status change listener. | 
| 
        
        
        static
        
        
        void | 
      requestSync(Account account, String authority, Bundle extras)
      Start an asynchronous sync operation. | 
| 
        
        
        static
        
        
        void | 
      requestSync(SyncRequest request)
      Register a sync with the SyncManager. | 
| 
        
        
        static
        
        
        void | 
      setIsSyncable(Account account, String authority, int syncable)
      Set whether this account/provider is syncable. | 
| 
        
        
        static
        
        
        void | 
      setMasterSyncAutomatically(boolean sync)
      Sets the global auto-sync setting that applies to all the providers and accounts. | 
| 
        
        
        static
        
        
        void | 
      setSyncAutomatically(Account account, String authority, boolean sync)
      Set whether or not the provider is synced when it receives a network tickle. | 
| 
        
        
        
        
        
        void | 
      startSync(Uri uri, Bundle extras)
      
      This method was deprecated
      in API level 15.
    instead use
  | 
| 
        
        
        
        
        
        void | 
      takePersistableUriPermission(Uri uri, int modeFlags)
      Take a persistable URI permission grant that has been offered. | 
| 
        
        
        
        final
        
        Uri | 
      uncanonicalize(Uri url)
      Given a canonical Uri previously generated by  | 
| 
        
        
        
        final
        
        void | 
      unregisterContentObserver(ContentObserver observer)
      Unregisters a change observer. | 
| 
        
        
        
        final
        
        int | 
      update(Uri uri, ContentValues values, Bundle extras)
      Update row(s) in a content URI. | 
| 
        
        
        
        final
        
        int | 
      update(Uri uri, ContentValues values, String where, String[] selectionArgs)
      Update row(s) in a content URI. | 
| 
        
        
        static
        
        
        void | 
      validateSyncExtrasBundle(Bundle extras)
      Check that only values of the following types are in the Bundle: 
 | 
| 
        
        
        static
        
        
        ContentResolver | 
      wrap(ContentProviderClient wrapped)
      Create a  | 
| 
        
        
        static
        
        
        ContentResolver | 
      wrap(ContentProvider wrapped)
      Create a  | 
| Inherited methods | |
|---|---|
Constants
ANY_CURSOR_ITEM_TYPE
public static final String ANY_CURSOR_ITEM_TYPE
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".
Constant Value: "vnd.android.cursor.item/*"
CURSOR_DIR_BASE_TYPE
public static final String CURSOR_DIR_BASE_TYPE
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.
Constant Value: "vnd.android.cursor.dir"
CURSOR_ITEM_BASE_TYPE
public static final String CURSOR_ITEM_BASE_TYPE
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.
Constant Value: "vnd.android.cursor.item"
EXTRA_HONORED_ARGS
public static final String EXTRA_HONORED_ARGS
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\u2019s payload.
See also:
Constant Value: "android.content.extra.HONORED_ARGS"
EXTRA_REFRESH_SUPPORTED
public static final String EXTRA_REFRESH_SUPPORTED
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.
Constant Value: "android.content.extra.REFRESH_SUPPORTED"
EXTRA_SIZE
public static final String EXTRA_SIZE
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.
See also:
Constant Value: "android.content.extra.SIZE"
EXTRA_TOTAL_COUNT
public static final String EXTRA_TOTAL_COUNT
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.
Constant Value: "android.content.extra.TOTAL_COUNT"
NOTIFY_DELETE
public static final int NOTIFY_DELETE
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 ContentProvider.delete call.
 
Sending these detailed flags are optional, but providers are strongly recommended to send them.
Constant Value: 16 (0x00000010)
NOTIFY_INSERT
public static final int NOTIFY_INSERT
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 ContentProvider.insert call.
 
Sending these detailed flags are optional, but providers are strongly recommended to send them.
Constant Value: 4 (0x00000004)
NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS
public static final int NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS
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.
Constant Value: 2 (0x00000002)
NOTIFY_SYNC_TO_NETWORK
public static final int NOTIFY_SYNC_TO_NETWORK
Flag for notifyChange(android.net.Uri, android.database.ContentObserver, int): attempt to sync the change
 to the network.
Constant Value: 1 (0x00000001)
NOTIFY_UPDATE
public static final int NOTIFY_UPDATE
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 ContentProvider.update call.
 
Sending these detailed flags are optional, but providers are strongly recommended to send them.
Constant Value: 8 (0x00000008)
QUERY_ARG_GROUP_COLUMNS
public static final String QUERY_ARG_GROUP_COLUMNS
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 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.
 Bundle, the Content framework will attempt to
 synthesize an QUERY_ARG_SQL* argument using the corresponding
 QUERY_ARG_SORT* values.
    
      Constant Value: "android:query-arg-group-columns"
QUERY_ARG_LIMIT
public static final String QUERY_ARG_LIMIT
Specifies the max number of rows to include in a Cursor.
Constant Value: "android:query-arg-limit"
QUERY_ARG_OFFSET
public static final String QUERY_ARG_OFFSET
Specifies the offset row index within a Cursor.
Constant Value: "android:query-arg-offset"
QUERY_ARG_SORT_COLLATION
public static final String QUERY_ARG_SORT_COLLATION
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.
Constant Value: "android:query-arg-sort-collation"
QUERY_ARG_SORT_COLUMNS
public static final String QUERY_ARG_SORT_COLUMNS
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 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.
 Bundle, the Content framework will attempt to
 synthesize a QUERY_ARG_SQL* argument using the corresponding
 QUERY_ARG_SORT* values.
    
      Constant Value: "android:query-arg-sort-columns"
QUERY_ARG_SORT_DIRECTION
public static final String QUERY_ARG_SORT_DIRECTION
Specifies desired sort order. When unspecified a provider may provide a default sort direction, or choose to return unsorted results.
Apps targeting 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.
 Bundle, the Content framework will attempt to synthesize
 a QUERY_ARG_SQL* argument using the corresponding QUERY_ARG_SORT* values.
  
    
      Constant Value: "android:query-arg-sort-direction"
QUERY_ARG_SORT_LOCALE
public static final String QUERY_ARG_SORT_LOCALE
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 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.
Constant Value: "android:query-arg-sort-locale"
QUERY_ARG_SQL_GROUP_BY
public static final String QUERY_ARG_SQL_GROUP_BY
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 Build.VERSION_CODES.O or higher are strongly
 encourage to use structured query arguments in lieu of opaque SQL query clauses.
See also:
Constant Value: "android:query-arg-sql-group-by"
QUERY_ARG_SQL_HAVING
public static final String QUERY_ARG_SQL_HAVING
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 Build.VERSION_CODES.O or higher are strongly
 encourage to use structured query arguments in lieu of opaque SQL query clauses.
Constant Value: "android:query-arg-sql-having"
QUERY_ARG_SQL_LIMIT
public static final String QUERY_ARG_SQL_LIMIT
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 Build.VERSION_CODES.O or higher are strongly
 encourage to use structured query arguments in lieu of opaque SQL query clauses.
See also:
Constant Value: "android:query-arg-sql-limit"
QUERY_ARG_SQL_SELECTION
public static final String QUERY_ARG_SQL_SELECTION
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 .QUERY_ARG_SQL_SELECTION_ARGS.
 
Apps targeting Build.VERSION_CODES.O or higher are strongly
 encourage to use structured query arguments in lieu of opaque SQL query clauses.
See also:
Constant Value: "android:query-arg-sql-selection"
QUERY_ARG_SQL_SELECTION_ARGS
public static final String QUERY_ARG_SQL_SELECTION_ARGS
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 .QUERY_ARG_SQL_SELECTION_ARGS.
 
Apps targeting Build.VERSION_CODES.O or higher are strongly
 encourage to use structured query arguments in lieu of opaque SQL query clauses.
See also:
Constant Value: "android:query-arg-sql-selection-args"
QUERY_ARG_SQL_SORT_ORDER
public static final String QUERY_ARG_SQL_SORT_ORDER
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 Build.VERSION_CODES.O or higher are strongly
 encourage to use structured query arguments in lieu of opaque SQL query clauses.
See also:
Constant Value: "android:query-arg-sql-sort-order"
QUERY_SORT_DIRECTION_ASCENDING
public static final int QUERY_SORT_DIRECTION_ASCENDING
Constant Value: 0 (0x00000000)
QUERY_SORT_DIRECTION_DESCENDING
public static final int QUERY_SORT_DIRECTION_DESCENDING
Constant Value: 1 (0x00000001)
SCHEME_ANDROID_RESOURCE
public static final String SCHEME_ANDROID_RESOURCE
Constant Value: "android.resource"
SCHEME_CONTENT
public static final String SCHEME_CONTENT
Constant Value: "content"
SYNC_EXTRAS_ACCOUNT
public static final String SYNC_EXTRAS_ACCOUNT
      This constant was deprecated
      in API level 15.
    instead use
 requestSync(android.accounts.Account, java.lang.String, android.os.Bundle)
  
Constant Value: "account"
SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS
public static final String SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS
Indicates that the sync adapter should not proceed with the delete operations,
 if it determines that there are too many.
 See SyncResult.tooManyDeletions
Constant Value: "discard_deletions"
SYNC_EXTRAS_DO_NOT_RETRY
public static final String SYNC_EXTRAS_DO_NOT_RETRY
If this extra is set to true then the request will not be retried if it fails.
Constant Value: "do_not_retry"
SYNC_EXTRAS_EXPEDITED
public static final String SYNC_EXTRAS_EXPEDITED
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.
Constant Value: "expedited"
SYNC_EXTRAS_FORCE
public static final String SYNC_EXTRAS_FORCE
      This constant was deprecated
      in API level 15.
    instead use
 SYNC_EXTRAS_MANUAL
  
Constant Value: "force"
SYNC_EXTRAS_IGNORE_BACKOFF
public static final String SYNC_EXTRAS_IGNORE_BACKOFF
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.
Constant Value: "ignore_backoff"
SYNC_EXTRAS_IGNORE_SETTINGS
public static final String SYNC_EXTRAS_IGNORE_SETTINGS
If this extra is set to true then the sync settings (like getSyncAutomatically()) are ignored by the sync scheduler.
Constant Value: "ignore_settings"
SYNC_EXTRAS_INITIALIZE
public static final String SYNC_EXTRAS_INITIALIZE
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.
Constant Value: "initialize"
SYNC_EXTRAS_MANUAL
public static final String SYNC_EXTRAS_MANUAL
Setting this extra is the equivalent of setting both SYNC_EXTRAS_IGNORE_SETTINGS
 and SYNC_EXTRAS_IGNORE_BACKOFF
Constant Value: "force"
SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS
public static final String SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS
Indicates that the sync adapter should proceed with the delete operations,
 even if it determines that there are too many.
 See SyncResult.tooManyDeletions
Constant Value: "deletions_override"
SYNC_EXTRAS_REQUIRE_CHARGING
public static final String SYNC_EXTRAS_REQUIRE_CHARGING
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.
Constant Value: "require_charging"
SYNC_EXTRAS_SCHEDULE_AS_EXPEDITED_JOB
public static final String SYNC_EXTRAS_SCHEDULE_AS_EXPEDITED_JOB
Run this sync operation as an "expedited job"
 (see JobInfo.Builder.setExpedited(boolean)).
 Normally (if this flag isn't specified), sync operations are executed as regular
 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:
 
- Can't be used with SYNC_EXTRAS_REQUIRE_CHARGING
- Can't be used with SYNC_EXTRAS_EXPEDITED
- Can't be used on periodic syncs.
- When an expedited-job-sync fails and a retry is scheduled, the retried sync will be
  scheduled as a regular job unless SYNC_EXTRAS_IGNORE_BACKOFFis set.
This is different from SYNC_EXTRAS_EXPEDITED.
Constant Value: "schedule_as_expedited_job"
SYNC_EXTRAS_UPLOAD
public static final String SYNC_EXTRAS_UPLOAD
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)
Constant Value: "upload"
SYNC_OBSERVER_TYPE_ACTIVE
public static final int SYNC_OBSERVER_TYPE_ACTIVE
Constant Value: 4 (0x00000004)
SYNC_OBSERVER_TYPE_PENDING
public static final int SYNC_OBSERVER_TYPE_PENDING
Constant Value: 2 (0x00000002)
SYNC_OBSERVER_TYPE_SETTINGS
public static final int SYNC_OBSERVER_TYPE_SETTINGS
Constant Value: 1 (0x00000001)
Public constructors
ContentResolver
public 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 benull. | 
Public methods
acquireContentProviderClient
public final ContentProviderClient acquireContentProviderClient (Uri uri)
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 benull. | 
| Returns | |
|---|---|
| ContentProviderClient | a ContentProviderClientthat is associated with theContentProviderthat services the content at uri or null if there isn't one. | 
acquireContentProviderClient
public final ContentProviderClient acquireContentProviderClient (String name)
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 benull. | 
| Returns | |
|---|---|
| ContentProviderClient | a ContentProviderClientthat is associated with theContentProviderwith the authority of name or null if there isn't one. | 
acquireUnstableContentProviderClient
public final ContentProviderClient acquireUnstableContentProviderClient (String name)
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
 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 benull. | 
| Returns | |
|---|---|
| ContentProviderClient | This value may be null. | 
acquireUnstableContentProviderClient
public final ContentProviderClient acquireUnstableContentProviderClient (Uri uri)
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
 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 benull. | 
| Returns | |
|---|---|
| ContentProviderClient | This value may be null. | 
addPeriodicSync
public static void addPeriodicSync (Account account, String authority, Bundle extras, long pollFrequency)
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
 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. | 
| Throws | |
|---|---|
| IllegalArgumentException | if an illegal extra was set or if any of the parameters are null. | 
addStatusChangeListener
public static Object addStatusChangeListener (int mask, SyncStatusObserver callback)
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 | 
| Returns | |
|---|---|
| Object | a handle that can be used to remove the listener at a later time | 
applyBatch
public ContentProviderResult[] applyBatch (String authority, ArrayList<ContentProviderOperation> operations)
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 benull. | 
| operations | ArrayList: the operations to apply
 This value cannot benull. | 
| Returns | |
|---|---|
| ContentProviderResult[] | the results of the applications
 This value cannot be null. | 
| Throws | |
|---|---|
| OperationApplicationException | thrown if an application fails.
 See ContentProviderOperation.applyfor more information. | 
| RemoteException | thrown if a RemoteException is encountered while attempting to communicate with a remote provider. | 
bulkInsert
public final int bulkInsert (Uri url, ContentValues[] values)
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 benull. | 
| values | 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. | 
| Returns | |
|---|---|
| int | the number of newly created rows. | 
call
public final Bundle call (Uri uri, String method, String arg, Bundle extras)
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 | |
|---|---|
| uri | Uri: This value cannot benull. | 
| 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. | 
| Returns | |
|---|---|
| Bundle | a result Bundle, possibly null. Will be null if the ContentProvider does not implement call. | 
| Throws | |
|---|---|
| NullPointerException | if uri or method is null | 
| IllegalArgumentException | if uri is not known | 
call
public final Bundle call (String authority, String method, String arg, Bundle extras)
| Parameters | |
|---|---|
| authority | String: This value cannot benull. | 
| method | String: This value cannot benull. | 
| arg | String: This value may benull. | 
| extras | Bundle: This value may benull. | 
| Returns | |
|---|---|
| Bundle | This value may be null. | 
cancelSync
public void cancelSync (Uri uri)
      This method was deprecated
      in API level 15.
    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
public static void cancelSync (SyncRequest request)
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
     Manifest.permission.WRITE_SYNC_SETTINGS.
| Parameters | |
|---|---|
| request | SyncRequest: SyncRequest object containing information about sync to cancel. | 
cancelSync
public static void cancelSync (Account account, String authority)
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 | 
canonicalize
public final Uri canonicalize (Uri url)
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(Uri, String, Bundle, CancellationSignal), 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(Uri) with that original Uri to
 re-canonicalize it for the current environment.  Alternatively, you may
 want to use uncanonicalize(Uri) 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: TheUrithat 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 benull. | 
| Returns | |
|---|---|
| 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
public final int delete (Uri url, String where, String[] selectionArgs)
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 benull. | 
| where | String: A filter to apply to rows before deleting, formatted as an SQL WHERE clause
            (excluding the WHERE itself).
 This value may benull. | 
| selectionArgs | String: This value may benull. | 
| Returns | |
|---|---|
| int | The number of rows deleted. | 
delete
public final int delete (Uri url, Bundle extras)
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 benull. | 
| extras | Bundle: A Bundle containing additional information necessary for
            the operation. Arguments may include SQL style arguments, such
            asContentResolver.QUERY_ARG_SQL_LIMIT, but note that
            the documentation for each individual provider will indicate
            which arguments they support.
 This value may benull. | 
| Returns | |
|---|---|
| int | The number of rows deleted. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provider doesn't support one of the requested Bundle arguments. | 
getCurrentSync
public static SyncInfo getCurrentSync ()
      This method was deprecated
      in API level 15.
    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
 Manifest.permission.READ_SYNC_STATS.
 
| Returns | |
|---|---|
| SyncInfo | the SyncInfo for the currently active sync or null if one is not active. | 
getCurrentSyncs
public static List<SyncInfo> getCurrentSyncs ()
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
 Manifest.permission.READ_SYNC_STATS.
 
| Returns | |
|---|---|
| List<SyncInfo> | a List of SyncInfo objects for the currently active syncs. | 
getIsSyncable
public static int getIsSyncable (Account account, String authority)
Check if this account/provider is syncable.
This method requires the caller to hold the permission
 Manifest.permission.READ_SYNC_SETTINGS.
| Parameters | |
|---|---|
| account | Account | 
| authority | String | 
| Returns | |
|---|---|
| int | >0 if it is syncable, 0 if not, and <0 if the state isn't known yet. | 
getMasterSyncAutomatically
public static boolean getMasterSyncAutomatically ()
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
 Manifest.permission.READ_SYNC_SETTINGS.
| Returns | |
|---|---|
| boolean | the global auto-sync setting that applies to all the providers and accounts | 
getOutgoingPersistedUriPermissions
public List<UriPermission> getOutgoingPersistedUriPermissions ()
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.
| Returns | |
|---|---|
| List<UriPermission> | This value cannot be null. | 
getPeriodicSyncs
public static List<PeriodicSync> getPeriodicSyncs (Account account, String authority)
Get the list of information about the periodic syncs for the given account and authority.
This method requires the caller to hold the permission
 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 | 
| Returns | |
|---|---|
| List<PeriodicSync> | a list of PeriodicSync objects. This list may be empty but will never be null. | 
getPersistedUriPermissions
public List<UriPermission> getPersistedUriPermissions ()
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.
| Returns | |
|---|---|
| List<UriPermission> | This value cannot be null. | 
getStreamTypes
public String[] getStreamTypes (Uri url, String mimeTypeFilter)
Query for the possible MIME types for the representations the given
 content URL can be returned when opened as as stream with
 openTypedAssetFileDescriptor(Uri, String, Bundle).  Note that the types here are
 not necessarily a superset of the type returned by getType(Uri) --
 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 benull. | 
| 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 benull. | 
| Returns | |
|---|---|
| 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
public static SyncAdapterType[] getSyncAdapterTypes ()
Get information about the SyncAdapters that are known to the system.
| Returns | |
|---|---|
| SyncAdapterType[] | an array of SyncAdapters that have registered with the system | 
getSyncAutomatically
public static boolean getSyncAutomatically (Account account, String authority)
Check if the provider should be synced when a network tickle is received
This method requires the caller to hold the permission
 Manifest.permission.READ_SYNC_SETTINGS.
| Parameters | |
|---|---|
| account | Account: the account whose setting we are querying | 
| authority | String: the provider whose setting we are querying | 
| Returns | |
|---|---|
| boolean | true if the provider should be synced when a network tickle is received | 
getType
public final String getType (Uri url)
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 benull. | 
| Returns | |
|---|---|
| String | A MIME type for the content, or null if the URL is invalid or the type is unknown | 
getTypeInfo
public final ContentResolver.MimeTypeInfo getTypeInfo (String mimeType)
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 benull. | 
| Returns | |
|---|---|
| ContentResolver.MimeTypeInfo | This value cannot be null. | 
insert
public final Uri insert (Uri url, ContentValues values, Bundle extras)
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 benull. | 
| 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 benull. | 
| extras | Bundle: A Bundle containing additional information necessary for
            the operation. Arguments may include SQL style arguments, such
            asContentResolver.QUERY_ARG_SQL_LIMIT, but note that
            the documentation for each individual provider will indicate
            which arguments they support.
 This value may benull. | 
| Returns | |
|---|---|
| Uri | the URL of the newly created row. May return nullif the underlying
         content provider returnsnull, or if it crashes. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provider doesn't support one of the requested Bundle arguments. | 
insert
public final Uri insert (Uri url, ContentValues values)
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 benull. | 
| 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 benull. | 
| Returns | |
|---|---|
| Uri | the URL of the newly created row. May return nullif the underlying
         content provider returnsnull, or if it crashes. | 
isSyncActive
public static boolean isSyncActive (Account account, String authority)
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
 Manifest.permission.READ_SYNC_STATS.
| Parameters | |
|---|---|
| account | Account: the account whose setting we are querying | 
| authority | String: the provider whose behavior is being queried | 
| Returns | |
|---|---|
| boolean | true if a sync is active for the given account or authority. | 
isSyncPending
public static boolean isSyncPending (Account account, String authority)
Return true if the pending status is true of any matching authorities.
This method requires the caller to hold the permission
 Manifest.permission.READ_SYNC_STATS.
| Parameters | |
|---|---|
| account | Account: the account whose setting we are querying | 
| authority | String: the provider whose behavior is being queried | 
| Returns | |
|---|---|
| boolean | true if there is a pending sync with the matching account and authority | 
loadThumbnail
public Bitmap loadThumbnail (Uri uri, Size size, CancellationSignal signal)
Convenience method that efficiently loads a visual thumbnail for the
 given Uri. Internally calls
 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 benull. | 
| size | Size: The target area on the screen where this thumbnail will be
            shown. This is passed to the provider asEXTRA_SIZEto help it avoid downloading or generating heavy resources.
 This value cannot benull. | 
| signal | CancellationSignal: A signal to cancel the operation in progress.
 This value may benull. | 
| Returns | |
|---|---|
| Bitmap | Valid Bitmapwhich is a visual thumbnail.
 This value cannot benull. | 
| Throws | |
|---|---|
| IOException | If any trouble was encountered while generating or
             loading the thumbnail, or if CancellationSignal.cancel()was invoked. | 
notifyChange
public void notifyChange (Collection<Uri> uris, ContentObserver observer, int flags)
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 Build.VERSION_CODES.O, all content
 notifications must be backed by a valid ContentProvider.
| Parameters | |
|---|---|
| uris | Collection: The uris of the content that was changed.
 This value cannot benull. | 
| observer | ContentObserver: The observer that originated the change, may benull. The observer that originated the change
            will only receive the notification if it has requested to
            receive self-change notifications by implementing
             | 
| flags | int: Flags such asNOTIFY_SYNC_TO_NETWORKorNOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS.
 Value is either0or a combination ofNOTIFY_SYNC_TO_NETWORK,NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS,NOTIFY_INSERT,NOTIFY_UPDATE, andNOTIFY_DELETE | 
notifyChange
public void notifyChange (Uri uri, ContentObserver observer, boolean syncToNetwork)
      This method was deprecated
      in API level 30.
    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 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 benull. | 
| observer | ContentObserver: The observer that originated the change, may benull. The observer that originated the change
            will only receive the notification if it has requested to
            receive self-change notifications by implementing
             | 
| syncToNetwork | boolean: If true, same asNOTIFY_SYNC_TO_NETWORK. | 
notifyChange
public void notifyChange (Uri uri, ContentObserver observer, int flags)
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 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 benull. | 
| observer | ContentObserver: The observer that originated the change, may benull. The observer that originated the change
            will only receive the notification if it has requested to
            receive self-change notifications by implementing
             | 
| flags | int: Additional flags:NOTIFY_SYNC_TO_NETWORK.
 Value is either0or a combination ofNOTIFY_SYNC_TO_NETWORK,NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS,NOTIFY_INSERT,NOTIFY_UPDATE, andNOTIFY_DELETE | 
notifyChange
public void notifyChange (Uri uri, ContentObserver observer)
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 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 benull. | 
| observer | ContentObserver: The observer that originated the change, may benull. The observer that originated the change
            will only receive the notification if it has requested to
            receive self-change notifications by implementing
             | 
openAssetFile
public final AssetFileDescriptor openAssetFile (Uri uri, String mode, CancellationSignal signal)
| Parameters | |
|---|---|
| uri | Uri: This value cannot benull. | 
| mode | String: This value cannot benull. | 
| signal | CancellationSignal: This value may benull. | 
| Returns | |
|---|---|
| AssetFileDescriptor | This value may be null. | 
| Throws | |
|---|---|
| FileNotFoundException | |
openAssetFileDescriptor
public final AssetFileDescriptor openAssetFileDescriptor (Uri uri, String mode, CancellationSignal cancellationSignal)
Open a raw file descriptor to access data under a URI.  This
 interacts with the underlying ContentProvider.openAssetFile
 method of the provider associated with the given URI, to retrieve any file stored there.
 
Accepts the following URI schemes:
- content (SCHEME_CONTENT)
- android.resource (SCHEME_ANDROID_RESOURCE)
- file (SCHEME_FILE)
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_nameis your package name as listed in your AndroidManifest.xml. For example- com.example.myapp
 - id_numberis 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_nameis your package name as listed in your AndroidManifest.xml. For example- com.example.myapp
 - typeis the string form of the resource type. For example,- rawor- drawable.- nameis 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(Uri, String, Bundle)
 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 benull. | 
| 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.parseModefor more details.
 This value cannot benull. | 
| cancellationSignal | CancellationSignal: A signal to cancel the operation in progress, or null if
            none. If the operation is canceled, thenOperationCanceledExceptionwill be thrown. | 
| Returns | |
|---|---|
| AssetFileDescriptor | Returns a new ParcelFileDescriptor pointing to the file or nullif the
 provider recently crashed. You own this descriptor and are responsible for closing it
 when done. | 
| Throws | |
|---|---|
| FileNotFoundException | Throws FileNotFoundException of no file exists under the URI or the mode is invalid. | 
openAssetFileDescriptor
public final AssetFileDescriptor openAssetFileDescriptor (Uri uri, String mode)
Open a raw file descriptor to access data under a URI.  This
 interacts with the underlying ContentProvider.openAssetFile
 method of the provider associated with the given URI, to retrieve any file stored there.
 
Accepts the following URI schemes:
- content (SCHEME_CONTENT)
- android.resource (SCHEME_ANDROID_RESOURCE)
- file (SCHEME_FILE)
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_nameis your package name as listed in your AndroidManifest.xml. For example- com.example.myapp
 - id_numberis 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_nameis your package name as listed in your AndroidManifest.xml. For example- com.example.myapp
 - typeis the string form of the resource type. For example,- rawor- drawable.- nameis 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(Uri, String, Bundle)
 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 benull. | 
| 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 benull. | 
| Returns | |
|---|---|
| AssetFileDescriptor | Returns a new ParcelFileDescriptor pointing to the file or nullif the
 provider recently crashed. You own this descriptor and are responsible for closing it
 when done. | 
| Throws | |
|---|---|
| FileNotFoundException | Throws FileNotFoundException of no file exists under the URI or the mode is invalid. | 
openFile
public final ParcelFileDescriptor openFile (Uri uri, String mode, CancellationSignal signal)
| Parameters | |
|---|---|
| uri | Uri: This value cannot benull. | 
| mode | String: This value cannot benull. | 
| signal | CancellationSignal: This value may benull. | 
| Returns | |
|---|---|
| ParcelFileDescriptor | This value may be null. | 
| Throws | |
|---|---|
| FileNotFoundException | |
openFileDescriptor
public final ParcelFileDescriptor openFileDescriptor (Uri uri, String mode, CancellationSignal cancellationSignal)
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 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:
- content (SCHEME_CONTENT)
- file (SCHEME_FILE)
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 benull. | 
| 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 benull. | 
| cancellationSignal | CancellationSignal: A signal to cancel the operation in progress,
         or null if none. If the operation is canceled, thenOperationCanceledExceptionwill be thrown. | 
| Returns | |
|---|---|
| ParcelFileDescriptor | Returns a new ParcelFileDescriptor pointing to the file or nullif the
 provider recently crashed. You own this descriptor and are responsible for closing it
 when done. | 
| Throws | |
|---|---|
| FileNotFoundException | Throws FileNotFoundException if no file exists under the URI or the mode is invalid. | 
See also:
openFileDescriptor
public final ParcelFileDescriptor openFileDescriptor (Uri uri, String mode)
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 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:
- content (SCHEME_CONTENT)
- file (SCHEME_FILE)
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 benull. | 
| 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 benull. | 
| Returns | |
|---|---|
| ParcelFileDescriptor | Returns a new ParcelFileDescriptor pointing to the file or nullif the
 provider recently crashed. You own this descriptor and are responsible for closing it
 when done. | 
| Throws | |
|---|---|
| FileNotFoundException | Throws FileNotFoundException if no file exists under the URI or the mode is invalid. | 
See also:
openInputStream
public final InputStream openInputStream (Uri uri)
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:
- content (SCHEME_CONTENT)
- android.resource (SCHEME_ANDROID_RESOURCE)
- file (SCHEME_FILE)
See openAssetFileDescriptor(android.net.Uri, java.lang.String) for more information
 on these schemes.
| Parameters | |
|---|---|
| uri | Uri: The desired URI.
 This value cannot benull. | 
| Returns | |
|---|---|
| InputStream | InputStream or nullif the provider recently crashed. | 
| Throws | |
|---|---|
| FileNotFoundException | if the provided URI could not be opened. | 
See also:
openOutputStream
public final OutputStream openOutputStream (Uri uri)
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 benull. | 
| Returns | |
|---|---|
| OutputStream | an OutputStream or nullif the provider recently crashed. | 
| Throws | |
|---|---|
| FileNotFoundException | if the provided URI could not be opened. | 
openOutputStream
public final OutputStream openOutputStream (Uri uri, String mode)
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:
- content (SCHEME_CONTENT)
- file (SCHEME_FILE)
See openAssetFileDescriptor(android.net.Uri, java.lang.String) for more information
 on these schemes.
| Parameters | |
|---|---|
| uri | Uri: The desired URI.
 This value cannot benull. | 
| 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 benull. | 
| Returns | |
|---|---|
| OutputStream | an OutputStream or nullif the provider recently crashed. | 
| Throws | |
|---|---|
| FileNotFoundException | if the provided URI could not be opened. | 
See also:
openTypedAssetFile
public final AssetFileDescriptor openTypedAssetFile (Uri uri, String mimeTypeFilter, Bundle opts, CancellationSignal signal)
| Parameters | |
|---|---|
| uri | Uri: This value cannot benull. | 
| mimeTypeFilter | String: This value cannot benull. | 
| opts | Bundle: This value may benull. | 
| signal | CancellationSignal: This value may benull. | 
| Returns | |
|---|---|
| AssetFileDescriptor | This value may be null. | 
| Throws | |
|---|---|
| FileNotFoundException | |
openTypedAssetFileDescriptor
public final AssetFileDescriptor openTypedAssetFileDescriptor (Uri uri, String mimeType, Bundle opts, CancellationSignal cancellationSignal)
Open a raw file descriptor to access (potentially type transformed)
 data from a "content:" URI.  This interacts with the underlying
 ContentProvider.openTypedAssetFile method of the provider
 associated with the given URI, to retrieve any appropriate
 data stream for the data stored there.
 
Unlike openAssetFileDescriptor(Uri, String), 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 benull. | 
| 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 benull. | 
| opts | Bundle: Additional provider-dependent options.
 This value may benull. | 
| cancellationSignal | CancellationSignal: A signal to cancel the operation in progress,
         or null if none. If the operation is canceled, thenOperationCanceledExceptionwill be thrown. | 
| Returns | |
|---|---|
| AssetFileDescriptor | Returns a new ParcelFileDescriptor from which you can read the
 data stream from the provider or nullif 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. | 
| Throws | |
|---|---|
| FileNotFoundException | Throws FileNotFoundException of no data of the desired type exists under the URI. | 
openTypedAssetFileDescriptor
public final AssetFileDescriptor openTypedAssetFileDescriptor (Uri uri, String mimeType, Bundle opts)
Open a raw file descriptor to access (potentially type transformed)
 data from a "content:" URI.  This interacts with the underlying
 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(Uri, String), 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 benull. | 
| 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 benull. | 
| opts | Bundle: Additional provider-dependent options.
 This value may benull. | 
| Returns | |
|---|---|
| AssetFileDescriptor | Returns a new ParcelFileDescriptor from which you can read the
 data stream from the provider or nullif 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. | 
| Throws | |
|---|---|
| FileNotFoundException | Throws FileNotFoundException of no data of the desired type exists under the URI. | 
query
public final Cursor query (Uri uri, String[] projection, Bundle queryArgs, CancellationSignal cancellationSignal)
Query the given URI, returning a Cursor over the result set
 with support for cancellation.
 
For best performance, the caller should follow these guidelines:
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 benull. | 
| projection | 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
            asContentResolver.QUERY_ARG_SQL_LIMIT, but note that
            the documentation for each individual provider will indicate
            which arguments they support.
 This value may benull. | 
| cancellationSignal | CancellationSignal: A signal to cancel the operation in progress, or null if none.
 If the operation is canceled, thenOperationCanceledExceptionwill be thrown
 when the query is executed. | 
| Returns | |
|---|---|
| Cursor | A Cursor object, which is positioned before the first entry. May return nullif the underlying content provider returnsnull,
         or if it crashes. | 
query
public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal)
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 selectionparameter, 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 benull. | 
| projection | 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 | 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 benull. | 
| 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, thenOperationCanceledExceptionwill be thrown
 when the query is executed. | 
| Returns | |
|---|---|
| Cursor | A Cursor object, which is positioned before the first entry. May return nullif the underlying content provider returnsnull,
         or if it crashes. | 
See also:
query
public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
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 selectionparameter, 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 benull. | 
| projection | 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 | 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 benull. | 
| 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. | 
| Returns | |
|---|---|
| Cursor | A Cursor object, which is positioned before the first entry. May return nullif the underlying content provider returnsnull,
         or if it crashes. | 
See also:
refresh
public final boolean refresh (Uri url, Bundle extras, CancellationSignal cancellationSignal)
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 benull. | 
| extras | Bundle: Additional options from the client. The definitions of
            these are specific to the content provider being called.
 This value may benull. | 
| cancellationSignal | CancellationSignal: A signal to cancel the operation in progress,
            ornullif none. For example, if you called refresh on
            a particular uri, you should callCancellationSignal.throwIfCanceled()to check whether
            the client has canceled the refresh request. | 
| Returns | |
|---|---|
| boolean | true if the provider actually tried refreshing. | 
registerContentObserver
public final void registerContentObserver (Uri uri, boolean notifyForDescendants, ContentObserver observer)
Register an observer class that gets callbacks when data identified by a given content URI changes.
 Starting in 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 benull. | 
| notifyForDescendants | boolean: When false, the observer will be notified
            whenever a change occurs to the exact URI specified byurior 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 benull. | 
releasePersistableUriPermission
public void releasePersistableUriPermission (Uri uri, int modeFlags)
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 benull. | 
| modeFlags | int: Value is either0or a combination ofIntent.FLAG_GRANT_READ_URI_PERMISSION, andIntent.FLAG_GRANT_WRITE_URI_PERMISSION | 
See also:
removePeriodicSync
public static void removePeriodicSync (Account account, String authority, Bundle extras)
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
 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
public static void removeStatusChangeListener (Object handle)
Remove a previously registered status change listener.
| Parameters | |
|---|---|
| handle | Object: the handle that was returned byaddStatusChangeListener(int, SyncStatusObserver) | 
requestSync
public static void requestSync (Account account, String authority, Bundle extras)
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
public static void requestSync (SyncRequest request)
Register a sync with the SyncManager. These requests are built using the
 SyncRequest.Builder.
| Parameters | |
|---|---|
| request | SyncRequest | 
setIsSyncable
public static void setIsSyncable (Account account, String authority, int syncable)
Set whether this account/provider is syncable.
This method requires the caller to hold the permission
 Manifest.permission.WRITE_SYNC_SETTINGS.
| Parameters | |
|---|---|
| account | Account | 
| authority | String | 
| syncable | int: >0 denotes syncable, 0 means not syncable, <0 means unknown | 
setMasterSyncAutomatically
public static void setMasterSyncAutomatically (boolean sync)
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
 Manifest.permission.WRITE_SYNC_SETTINGS.
| Parameters | |
|---|---|
| sync | boolean: the global auto-sync setting that applies to all the providers and accounts | 
setSyncAutomatically
public static void setSyncAutomatically (Account account, String authority, boolean sync)
Set whether or not the provider is synced when it receives a network tickle.
This method requires the caller to hold the permission
 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
public void startSync (Uri uri, Bundle extras)
      This method was deprecated
      in API level 15.
    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
public void takePersistableUriPermission (Uri uri, int modeFlags)
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 benull. | 
| modeFlags | int: Value is either0or a combination ofIntent.FLAG_GRANT_READ_URI_PERMISSION, andIntent.FLAG_GRANT_WRITE_URI_PERMISSION | 
See also:
uncanonicalize
public final Uri uncanonicalize (Uri url)
Given a canonical Uri previously generated by canonicalize(Uri), 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 canonicalUrithat is to be convered back to its
 non-canonical form.
 This value cannot benull. | 
| Returns | |
|---|---|
| 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
public final void unregisterContentObserver (ContentObserver observer)
Unregisters a change observer.
| Parameters | |
|---|---|
| observer | ContentObserver: The previously registered observer that is no longer needed.
 This value cannot benull. | 
update
public final int update (Uri uri, ContentValues values, Bundle extras)
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 benull. | 
| 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
            asContentResolver.QUERY_ARG_SQL_LIMIT, but note that
            the documentation for each individual provider will indicate
            which arguments they support.
 This value may benull. | 
| Returns | |
|---|---|
| int | the number of rows updated. | 
| Throws | |
|---|---|
| NullPointerException | if uri or values are null | 
| IllegalArgumentException | if the provider doesn't support one of the requested Bundle arguments. | 
update
public final int update (Uri uri, ContentValues values, String where, String[] selectionArgs)
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 benull. | 
| 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 benull. | 
| selectionArgs | String: This value may benull. | 
| Returns | |
|---|---|
| int | the number of rows updated. | 
| Throws | |
|---|---|
| NullPointerException | if uri or values are null | 
validateSyncExtrasBundle
public static void validateSyncExtrasBundle (Bundle extras)
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
public static ContentResolver wrap (ContentProviderClient wrapped)
Create a ContentResolver instance that redirects all its methods
 to the given ContentProviderClient.
| Parameters | |
|---|---|
| wrapped | ContentProviderClient: This value cannot benull. | 
| Returns | |
|---|---|
| ContentResolver | This value cannot be null. | 
wrap
public static ContentResolver wrap (ContentProvider wrapped)
Create a ContentResolver instance that redirects all its methods
 to the given ContentProvider.
| Parameters | |
|---|---|
| wrapped | ContentProvider: This value cannot benull. | 
| Returns | |
|---|---|
| ContentResolver | This value cannot be null. | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
