CloudMediaProvider  |  API reference  |  Android Developers

Base class for a cloud media provider. A cloud media provider offers read-only access to durable media files, specifically photos and videos stored on a local disk, or files in a cloud storage service. To create a cloud media provider, extend this class, implement the abstract methods, and add it to your manifest like this:

Applications cannot use a cloud media provider directly; they must go through MediaStore.ACTION_PICK_IMAGES which requires a user to actively navigate and select media items. When a user selects a media item through that UI, the system issues narrow URI permission grants to the requesting application.

A media item must be an openable stream (with a specific MIME type). Media items can belong to zero or more albums. Albums cannot contain other albums.

Each item under a provider is uniquely referenced by its media or album id, which must not change which must be unique across all collection IDs as returned by onGetMediaCollectionInfo(Bundle).

Nested classes

class CloudMediaProvider.CloudMediaSurfaceController

Manages rendering the preview of media items on given instances of Surface

class CloudMediaProvider.CloudMediaSurfaceStateChangedCallback

This class is used by CloudMediaProvider to send Surface state updates to picker launched via MediaStore.ACTION_PICK_IMAGES

Inherited constants

From interface android.content.ComponentCallbacks2

int TRIM_MEMORY_BACKGROUND

Level for onTrimMemory(int): the process has gone on to the LRU list.

int TRIM_MEMORY_COMPLETE

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_MODERATE

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_RUNNING_CRITICAL

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_RUNNING_LOW

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_RUNNING_MODERATE

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_UI_HIDDEN

Level for onTrimMemory(int): the process had been showing a user interface, and is no longer doing so.

Public constructors

CloudMediaProvider()

Public methods

final void attachInfo(Context context, ProviderInfo info)

Implementation is provided by the parent class.

final Bundle call(String method, String arg, Bundle extras)

Implementation is provided by the parent class.

final Uri canonicalize(Uri uri)

Implementation is provided by the parent class.

final int delete(Uri uri, String selection, String[] selectionArgs)

Implementation is provided by the parent class.

final String getType(Uri uri)

Implementation is provided by the parent class.

final Uri insert(Uri uri, ContentValues values)

Implementation is provided by the parent class.

CloudMediaProvider.CloudMediaSurfaceController onCreateCloudMediaSurfaceController(Bundle config, CloudMediaProvider.CloudMediaSurfaceStateChangedCallback callback)

Returns a CloudMediaSurfaceController used for rendering the preview of media items, or null if preview rendering is not supported.

CloudMediaProviderContract.Capabilities onGetCapabilities()

Returns the CloudMediaProviderContract.Capabilities of this CloudMediaProvider.

abstract Bundle onGetMediaCollectionInfo(Bundle extras)

Returns metadata about the media collection itself.

abstract ParcelFileDescriptor onOpenMedia(String mediaId, Bundle extras, CancellationSignal signal)

Returns the full size media item identified by mediaId.

abstract AssetFileDescriptor onOpenPreview(String mediaId, Point size, Bundle extras, CancellationSignal signal)

Returns a thumbnail of size for a media item identified by mediaId

The cloud media provider should strictly return thumbnail in the original CloudMediaProviderContract.MediaColumns.MIME_TYPE of the item.

Cursor onQueryAlbums(Bundle extras)

Returns a cursor representing all album items in the media collection optionally filtered by extras and sorted in reverse chronological order of CloudMediaProviderContract.AlbumColumns.DATE_TAKEN_MILLIS, i.e.

abstract Cursor onQueryDeletedMedia(Bundle extras)

Returns a Cursor representing all deleted media items in the entire media collection within the current provider version as returned by onGetMediaCollectionInfo(Bundle).

abstract Cursor onQueryMedia(Bundle extras)

Returns a cursor representing all media items in the media collection optionally filtered by extras and sorted in reverse chronological order of CloudMediaProviderContract.MediaColumns.DATE_TAKEN_MILLIS, i.e.

Cursor onQueryMediaCategories(String parentCategoryId, Bundle extras, CancellationSignal cancellationSignal)

Queries for the available MediaCategories under the given parentCategoryId, filtered by extras.

Cursor onQueryMediaInMediaSet(String mediaSetId, Bundle extras, CancellationSignal cancellationSignal)

Queries for the available media items under a given mediaSetId, filtered by extras.

Cursor onQueryMediaSets(String mediaCategoryId, Bundle extras, CancellationSignal cancellationSignal)

Queries for the available MediaSets under a given mediaCategoryId, filtered by extras.

Cursor onQuerySearchSuggestions(String prefixText, Bundle extras, CancellationSignal cancellationSignal)

Queries for the available SearchSuggestions based on a prefixText, filtered by extras.

Cursor onSearchMedia(String searchText, Bundle extras, CancellationSignal cancellationSignal)

Searches media items based on entered search text, managed by extras and returns a cursor of CloudMediaProviderContract.MediaColumns based on the match.

Cursor onSearchMedia(String suggestedMediaSetId, String fallbackSearchText, Bundle extras, CancellationSignal cancellationSignal)

Searches media items based on a selected suggestion, managed by extras and returns a cursor of CloudMediaProviderContract.MediaColumns based on the match.

final ParcelFileDescriptor openFile(Uri uri, String mode, CancellationSignal signal)

Implementation is provided by the parent class.

final ParcelFileDescriptor openFile(Uri uri, String mode)

Implementation is provided by the parent class.

final AssetFileDescriptor openTypedAssetFile(Uri uri, String mimeTypeFilter, Bundle opts)

Implementation is provided by the parent class.

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

Implementation is provided by the parent class.

final Cursor query(Uri uri, String[] projection, Bundle queryArgs, CancellationSignal cancellationSignal)

Implementation is provided by the parent class.

final Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal)

Implementation is provided by the parent class.

final Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Implementation is provided by the parent class.

final int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)

Implementation is provided by the parent class.

Inherited methods

From class android.content.ContentProvider

ContentProviderResult[] applyBatch(String authority, ArrayList<ContentProviderOperation> operations)

Override this to handle requests to perform a batch of operations, or the default implementation will iterate over the operations and call ContentProviderOperation.apply on each of them.

ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations)
void attachInfo(Context context, ProviderInfo info)

After being instantiated, this is called to tell the content provider about itself.

int bulkInsert(Uri uri, ContentValues[] values)

Override this to handle requests to insert a set of new rows, or the default implementation will iterate over the values and call insert(Uri, ContentValues) on each of them.

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

Call a provider-defined method.

Bundle call(String method, String arg, Bundle extras)
Uri canonicalize(Uri url)

Implement this to support canonicalization of URIs that refer to your content provider.

final ContentProvider.CallingIdentity clearCallingIdentity()

Reset the identity of the incoming IPC on the current thread.

abstract int delete(Uri uri, String selection, String[] selectionArgs)

Implement this to handle requests to delete one or more rows.

int delete(Uri uri, Bundle extras)

Implement this to handle requests to delete one or more rows.

void dump(FileDescriptor fd, PrintWriter writer, String[] args)

Print the Provider's state into the given stream.

final AttributionSource getCallingAttributionSource()

Gets the attribution source of the calling app.

final String getCallingAttributionTag()

Return the attribution tag of the caller that initiated the request being processed on the current thread.

final String getCallingPackage()

Return the package name of the caller that initiated the request being processed on the current thread.

final String getCallingPackageUnchecked()

Return the package name of the caller that initiated the request being processed on the current thread.

final Context getContext()

Retrieves the Context this provider is running in.

final PathPermission[] getPathPermissions()

Return the path-based permissions required for read and/or write access to this content provider.

final String getReadPermission()

Return the name of the permission required for read-only access to this content provider.

String[] getStreamTypes(Uri uri, String mimeTypeFilter)

Called by a client to determine the types of data streams that this content provider supports for the given URI.

abstract String getType(Uri uri)

Implement this to handle requests for the MIME type of the data at the given URI.

String getTypeAnonymous(Uri uri)

Implement this to handle requests for MIME type of URIs, that does not need to reveal any internal information which should be protected by any permission.

final String getWritePermission()

Return the name of the permission required for read/write access to this content provider.

Uri insert(Uri uri, ContentValues values, Bundle extras)

Implement this to handle requests to insert a new row.

abstract Uri insert(Uri uri, ContentValues values)

Implement this to handle requests to insert a new row.

boolean isTemporary()

Returns true if this instance is a temporary content provider.

void onCallingPackageChanged()

Called whenever the value of getCallingPackage() changes, giving the provider an opportunity to invalidate any security related caching it may be performing.

void onConfigurationChanged(Configuration newConfig)

Called by the system when the device configuration changes while your component is running. This method is always called on the application main thread, and must not perform lengthy operations.

abstract boolean onCreate()

Implement this to initialize your content provider on startup.

void onLowMemory()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. This method is always called on the application main thread, and must not perform lengthy operations.

void onTrimMemory(int level)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process.

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

This is like openFile(Uri, String), but can be implemented by providers that need to be able to return sub-sections of files, often assets inside of their .apk.

AssetFileDescriptor openAssetFile(Uri uri, String mode)

This is like openFile(Uri, String), but can be implemented by providers that need to be able to return sub-sections of files, often assets inside of their .apk.

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

Override this to handle requests to open a file blob.

ParcelFileDescriptor openFile(Uri uri, String mode)

Override this to handle requests to open a file blob.

final ParcelFileDescriptor openFileHelper(Uri uri, String mode)

Convenience for subclasses that wish to implement openFile(Uri, String) by looking up a column named "_data" at the given URI.

<T> ParcelFileDescriptor openPipeHelper(Uri uri, String mimeType, Bundle opts, T args, PipeDataWriter<T> func)

A helper function for implementing openTypedAssetFile(Uri, String, Bundle), for creating a data pipe and background thread allowing you to stream generated data back to the client.

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

Called by a client to open a read-only stream containing data of a particular MIME type.

AssetFileDescriptor openTypedAssetFile(Uri uri, String mimeTypeFilter, Bundle opts)

Called by a client to open a read-only stream containing data of a particular MIME type.

Cursor query(Uri uri, String[] projection, Bundle queryArgs, CancellationSignal cancellationSignal)

Implement this to handle query requests where the arguments are packed into a Bundle.

Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal)

Implement this to handle query requests from clients with support for cancellation.

abstract Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Implement this to handle query requests from clients.

boolean refresh(Uri uri, Bundle extras, CancellationSignal cancellationSignal)

Implement this to support refresh of content identified by uri.

final Context requireContext()

Retrieves a Non-Nullable Context this provider is running in, this is intended to be called after onCreate().

final void restoreCallingIdentity(ContentProvider.CallingIdentity identity)

Restore the identity of the incoming IPC on the current thread back to a previously identity that was returned by clearCallingIdentity().

final void setPathPermissions(PathPermission[] permissions)

Change the path-based permission required to read and/or write data in the content provider.

final void setReadPermission(String permission)

Change the permission required to read data from the content provider.

final void setWritePermission(String permission)

Change the permission required to read and write data in the content provider.

void shutdown()

Implement this to shut down the ContentProvider instance.

Uri uncanonicalize(Uri url)

Remove canonicalization from canonical URIs previously returned by canonicalize(Uri).

int update(Uri uri, ContentValues values, Bundle extras)

Implement this to handle requests to update one or more rows.

abstract int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)

Implement this to handle requests to update one or more rows.

From class java.lang.Object

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

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

void finalize()

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

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

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

final void notifyAll()

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

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

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

final void wait(long timeoutMillis)

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

final void wait()

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

From interface android.content.ComponentCallbacks2

abstract void onTrimMemory(int level)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process.

From interface android.content.ComponentCallbacks

abstract void onConfigurationChanged(Configuration newConfig)

Called by the system when the device configuration changes while your component is running.

abstract void onLowMemory()

This method was deprecated in API level 35. Since API level 14 this is superseded by ComponentCallbacks2.onTrimMemory. Since API level 34 this is never called. If you're overriding ComponentCallbacks2#onTrimMemory and your minSdkVersion is greater than API 14, you can provide an empty implementation for this method.

Public constructors

CloudMediaProvider

public CloudMediaProvider ()

Public methods

attachInfo

public final void attachInfo (Context context, 
                ProviderInfo info)

Implementation is provided by the parent class. Cannot be overridden.

Parameters
context Context: This value cannot be null.
info ProviderInfo: This value cannot be null.

call

public final Bundle call (String method, 
                String arg, 
                Bundle extras)

Implementation is provided by the parent class. Cannot be overridden.

Parameters
method String: This value cannot be null.
arg String: This value may be null.
extras Bundle: This value may be null.
Returns
Bundle This value cannot be null.

canonicalize

public final Uri canonicalize (Uri uri)

Implementation is provided by the parent class. Throws by default, and cannot be overridden.

Parameters
uri Uri: This value cannot be null.
Returns
Uri This value cannot be null.

delete

public final int delete (Uri uri, 
                String selection, 
                String[] selectionArgs)

Implementation is provided by the parent class. Throws by default, and cannot be overridden.

Parameters
uri Uri: This value cannot be null.
selection String: This value may be null.
selectionArgs String: This value may be null.
Returns
int The number of rows affected.

getType

public final String getType (Uri uri)

Implementation is provided by the parent class. Throws by default, and cannot be overridden.

Parameters
uri Uri: This value cannot be null.
Returns
String This value cannot be null.

insert

public final Uri insert (Uri uri, 
                ContentValues values)

Implementation is provided by the parent class. Throws by default, and cannot be overridden.

Parameters
uri Uri: This value cannot be null.
values ContentValues: This value cannot be null.
Returns
Uri This value cannot be null.

onOpenMedia

public abstract ParcelFileDescriptor onOpenMedia (String mediaId, 
                Bundle extras, 
                CancellationSignal signal)

Returns the full size media item identified by mediaId.

If you block while downloading content, you should periodically check CancellationSignal.isCanceled() to abort abandoned open requests.

Parameters
mediaId String: the media item to return.
This value cannot be null.
extras Bundle: to modify the way the fd is opened, there's none at the moment, but some might be implemented in the future.
This value may be null.
signal CancellationSignal: used by the OS to signal if the request should be cancelled.
This value may be null.
Returns
ParcelFileDescriptor read-only file descriptor for accessing the media file.
This value cannot be null.
Throws
FileNotFoundException

onQueryMediaCategories

public Cursor onQueryMediaCategories (String parentCategoryId, 
                Bundle extras, 
                CancellationSignal cancellationSignal)

Queries for the available MediaCategories under the given parentCategoryId, filtered by extras. The columns of MediaCategories are in the class CloudMediaProviderContract.MediaCategoryColumns.

When parentCategoryId is null, this returns the root categories.

The order in which media categories are sorted in the cursor will be retained when displaying results to the user.

The cloud media provider must set the CloudMediaProviderContract.EXTRA_MEDIA_COLLECTION_ID as part of the returned cursor by using Cursor.setExtras. Not setting this is an error and invalidates the returned Cursor, meaning photo picker will not use the cursor for any operation.

extras may contain some key-value pairs which should be used to filter the results. If the provider handled any filters in extras, it must add the key to the ContentResolver.EXTRA_HONORED_ARGS as part of the returned cursor by using Cursor.setExtras. If not honored, photo picker will assume the result of the query is without the extra being used. Note: Currently this function does not pass any params in extras.

Parameters
parentCategoryId String: the ID of the parent category to filter media categories.
This value may be null.
extras Bundle: containing keys to filter media categories: .
This value cannot be null.
cancellationSignal CancellationSignal: CancellationSignal to check if request has been cancelled.
This value may be null.
Returns
Cursor cursor with CloudMediaProviderContract.MediaCategoryColumns columns

onQueryMediaSets

public Cursor onQueryMediaSets (String mediaCategoryId, 
                Bundle extras, 
                CancellationSignal cancellationSignal)

Queries for the available MediaSets under a given mediaCategoryId, filtered by extras. The columns of MediaSet are in the class CloudMediaProviderContract.MediaSetColumns.

This returns MediaSets directly inside the given MediaCategoryId. If the passed mediaCategoryId has some more nested mediaCategories, the mediaSets inside the nested mediaCategories must not be returned in this response.

The order in which media sets are sorted in the cursor will be retained when displaying results to the user.

The cloud media provider must set the CloudMediaProviderContract.EXTRA_MEDIA_COLLECTION_ID as part of the returned cursor by using Cursor.setExtras . Not setting this is an error and invalidates the returned Cursor, meaning photo picker will not use the cursor for any operation.

extras may contain some key-value pairs which should be used to prepare the results. If the provider handled any filters in extras, it must add the key to the ContentResolver.EXTRA_HONORED_ARGS as part of the returned cursor by using Cursor.setExtras. If not honored, photo picker will assume the result of the query is without the extra being used.

If the cloud media provider supports pagination, they can set CloudMediaProviderContract.EXTRA_PAGE_TOKEN as the next page token, as part of the returned cursor by using Cursor.setExtras. If a token is set, the OS will pass it as a key-value pair in extras when querying for query media sets for subsequent pages. The provider can keep returning pagination tokens in the returned cursor by using Cursor.setExtras until the last page at which point it should not set a token in the returned cursor.

Parameters
mediaCategoryId String: the ID of the media category to filter media sets.
This value cannot be null.
extras Bundle: containing keys to filter media sets: .
This value cannot be null.
cancellationSignal CancellationSignal: CancellationSignal to check if request has been cancelled.
This value may be null.
Returns
Cursor cursor representing CloudMediaProviderContract.MediaSetColumns columns.
This value cannot be null.

onQuerySearchSuggestions

public Cursor onQuerySearchSuggestions (String prefixText, 
                Bundle extras, 
                CancellationSignal cancellationSignal)

Queries for the available SearchSuggestions based on a prefixText, filtered by extras. The columns of SearchSuggestions are in the class CloudMediaProviderContract.SearchSuggestionColumns

If the user has not started typing, this is considered as zero state suggestion. In this case prefixText will be empty string.

The order in which suggestions are sorted in the cursor will be retained when displaying results to the user.

The cloud media provider must set the CloudMediaProviderContract.EXTRA_MEDIA_COLLECTION_ID as part of the returned cursor by using Cursor.setExtras . Not setting this is an error and invalidates the returned Cursor, meaning photo picker will not use the cursor for any operation.

extras may contain some key-value pairs which should be used to prepare the results. If the provider handled any params in extras, it must add the key to the ContentResolver.EXTRA_HONORED_ARGS as part of the returned cursor by using Cursor.setExtras. If not honored, photo picker will assume the result of the query is without the extra being used. Note: Currently this function does not pass any key-value params in extras.

Results may not be displayed if it takes longer than 300 milliseconds to get a response from the cloud media provider.

Parameters
prefixText String: the prefix text to filter search suggestions.
This value cannot be null.
extras Bundle: containing keys to filter search suggestions. .
This value cannot be null.
cancellationSignal CancellationSignal: CancellationSignal to check if request has been cancelled.
This value may be null.
Returns
Cursor cursor representing search suggestions containing all CloudMediaProviderContract.SearchSuggestionColumns columns.
This value cannot be null.

onSearchMedia

public Cursor onSearchMedia (String searchText, 
                Bundle extras, 
                CancellationSignal cancellationSignal)

Searches media items based on entered search text, managed by extras and returns a cursor of CloudMediaProviderContract.MediaColumns based on the match.

The cloud media provider must set the CloudMediaProviderContract.EXTRA_MEDIA_COLLECTION_ID as part of the returned cursor by using Cursor.setExtras . Not setting this is an error and invalidates the returned Cursor, meaning photo picker will not use the cursor for any operation.

extras may contain some key-value pairs which should be used to prepare the results. If the provider handled any params in extras, it must add the key to the ContentResolver.EXTRA_HONORED_ARGS as part of the returned cursor by using Cursor.setExtras. If not honored, photo picker will assume the result of the query is without the extra being used.

An example user journey:

  1. User enters the search prompt.
  2. Using onQuerySearchSuggestions(String, Bundle, CancellationSignal), photo picker display suggestions as the user keeps typing.
  3. User types completely and then enters search, Photo picker calls: onSearchMedia(searchText, extras)

If the cloud media provider supports pagination, they can set CloudMediaProviderContract.EXTRA_PAGE_TOKEN as the next page token, as part of the returned cursor by using Cursor.setExtras. If a token is set, the OS will pass it as a key value pair in extras when querying for search media for subsequent pages. The provider can keep returning pagination tokens in the returned cursor by using Cursor.setExtras until the last page at which point it should not set a token in the returned cursor.

Results may not be displayed if it takes longer than 3 seconds to get a paged response from the cloud media provider.

Parameters
searchText String: search text to be used.
This value cannot be null.
extras Bundle: containing keys to manage the search results: .
This value cannot be null.
cancellationSignal CancellationSignal: CancellationSignal to check if request has been cancelled.
This value may be null.
Returns
Cursor cursor of CloudMediaProviderContract.MediaColumns based on the match.
This value cannot be null.

onSearchMedia

public Cursor onSearchMedia (String suggestedMediaSetId, 
                String fallbackSearchText, 
                Bundle extras, 
                CancellationSignal cancellationSignal)

Searches media items based on a selected suggestion, managed by extras and returns a cursor of CloudMediaProviderContract.MediaColumns based on the match.

The cloud media provider must set the CloudMediaProviderContract.EXTRA_MEDIA_COLLECTION_ID as part of the returned cursor by using Cursor.setExtras . Not setting this is an error and invalidates the returned Cursor, meaning photo picker will not use the cursor for any operation.

extras may contain some key-value pairs which should be used to prepare the results. If the provider handled any params in extras, it must add the key to the ContentResolver.EXTRA_HONORED_ARGS as part of the returned cursor by using Cursor.setExtras. If not honored, photo picker will assume the result of the query is without the extra being used.

An example user journey:

  1. User enters the search prompt.
  2. Using onQuerySearchSuggestions(String, Bundle, CancellationSignal), photo picker display suggestions as the user keeps typing.
  3. User selects a suggestion, Photo picker calls: onSearchMedia(suggestedMediaSetId, fallbackSearchText, extras) with the suggestedMediaSetId corresponding to the user chosen suggestion. CloudMediaProviderContract.SearchSuggestionColumns.MEDIA_SET_ID

If the cloud media provider supports pagination, they can set CloudMediaProviderContract.EXTRA_PAGE_TOKEN as the next page token, as part of the returned cursor by using Cursor.setExtras. If a token is set, the OS will pass it as a key value pair in extras when querying for search media for subsequent pages. The provider can keep returning pagination tokens in the returned cursor by using Cursor.setExtras until the last page at which point it should not set a token in the returned cursor

Results may not be displayed if it takes longer than 3 seconds to get a paged response from the cloud media provider.

Parameters
suggestedMediaSetId String: the media set ID of the suggestion that the user wants to search.
This value cannot be null.
fallbackSearchText String: optional search text to be used when suggestedMediaSetId is not useful.
This value may be null.
extras Bundle: containing keys to manage the search results: .
This value cannot be null.
cancellationSignal CancellationSignal: CancellationSignal to check if request has been cancelled.
This value may be null.
Returns
Cursor cursor of CloudMediaProviderContract.MediaColumns based on the match.
This value cannot be null.

query

public final Cursor query (Uri uri, 
                String[] projection, 
                Bundle queryArgs, 
                CancellationSignal cancellationSignal)

Implementation is provided by the parent class. Cannot be overridden.

Parameters
uri Uri: This value cannot be null.
projection String: This value may be null.
queryArgs Bundle: This value may be null.
cancellationSignal CancellationSignal: This value may be null.
Returns
Cursor This value cannot be null.

query

public final Cursor query (Uri uri, 
                String[] projection, 
                String selection, 
                String[] selectionArgs, 
                String sortOrder, 
                CancellationSignal cancellationSignal)

Implementation is provided by the parent class. Throws by default, and cannot be overridden.

Parameters
uri Uri: This value cannot be null.
projection String: This value may be null.
selection String: This value may be null.
selectionArgs String: This value may be null.
sortOrder String: This value may be null.
cancellationSignal CancellationSignal: This value may be null.
Returns
Cursor This value cannot be null.

query

public final Cursor query (Uri uri, 
                String[] projection, 
                String selection, 
                String[] selectionArgs, 
                String sortOrder)

Implementation is provided by the parent class. Throws by default, and cannot be overridden.

Parameters
uri Uri: This value cannot be null.
projection String: This value may be null.
selection String: This value may be null.
selectionArgs String: This value may be null.
sortOrder String: This value may be null.
Returns
Cursor This value cannot be null.

update

public final int update (Uri uri, 
                ContentValues values, 
                String selection, 
                String[] selectionArgs)

Implementation is provided by the parent class. Throws by default, and cannot be overridden.

Parameters
uri Uri: This value cannot be null.
values ContentValues: This value cannot be null.
selection String: This value may be null.
selectionArgs String: This value may be null.
Returns
int the number of rows affected.