![](/style/images/good.png)
![](/style/images/bad.png)
CloudMediaProvider | Android Developers
source link: https://developer.android.com/reference/android/provider/CloudMediaProvider
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
CloudMediaProvider
public
abstract
class
CloudMediaProvider
extends ContentProvider
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:
<manifest>
...
<application>
...
<provider
android:name="com.example.MyCloudProvider"
android:authorities="com.example.mycloudprovider"
android:exported="true"
android:permission="com.android.providers.media.permission.MANAGE_CLOUD_MEDIA_PROVIDERS"
<intent-filter>
<action android:name="android.content.action.CLOUD_MEDIA_PROVIDER" />
</intent-filter>
</provider>
...
</application>
</manifest>
When defining your provider, you must protect it with the
CloudMediaProviderContract#MANAGE_CLOUD_MEDIA_PROVIDERS_PERMISSION
, which is a permission
only the system can obtain, trying to define an unprotected CloudMediaProvider
will
result in a SecurityException
.
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.
Media items
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 without changing the provider version as returned by onGetMediaInfo(Bundle)
.
See also:
Summary
Inherited constants
From interface
android.content.ComponentCallbacks2
Public constructors
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.
Implementation is provided by the parent class.
final
Uri
insert(Uri uri, ContentValues values)
Implementation is provided by the parent class.
Bundle
onGetAccountInfo(Bundle extras)
Returns account related information for the media collection.
abstract
Bundle
onGetMediaInfo(Bundle extras)
Returns metadata about the media collection itself.
abstract
ParcelFileDescriptor
onOpenMedia(String mediaId, CancellationSignal signal)
Returns the full size media item identified by mediaId
.
abstract
AssetFileDescriptor
onOpenThumbnail(String mediaId, Point size, CancellationSignal signal)
Returns a thumbnail of size
for a media item identified by mediaId
.
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_MS
, 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 onGetMediaInfo(Bundle)
.
abstract
Cursor
onQueryMedia(String mediaId)
Returns a Cursor
to a single media item containing the columns representing the media
item identified by the CloudMediaProviderContract.MediaColumns#ID
with
mediaId
.
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_MS
, i.e.
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)
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
int
update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
Implementation is provided by the parent class.
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.
context
Context
: This value cannot be null
.
info
ProviderInfo
: This value cannot be null
.
public final Bundle call (String method, String arg, Bundle extras)
Implementation is provided by the parent class. Cannot be overridden.
method
String
: This value cannot be null
.
arg
String
: This value may be null
.
extras
Bundle
: This value may be null
.
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.
uri
Uri
: This value cannot be null
.
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.
uri
Uri
: This value cannot be null
.
selection
String
: This value may be null
.
selectionArgs
String
: This value may be null
.
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.
uri
Uri
: This value cannot be null
.
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.
uri
Uri
: This value cannot be null
.
values
ContentValues
: This value cannot be null
.
Uri
This value cannot be null
.
onGetAccountInfo
public Bundle onGetAccountInfo (Bundle extras)
Returns account related information for the media collection.
This is useful for the OS to populate a settings page with account information and allow users configure their media collection account.
onGetMediaInfo
public abstract Bundle onGetMediaInfo (Bundle extras)
Returns metadata about the media collection itself.
This is useful for the OS to determine if its cache of media items in the collection is
still valid and if a full or incremental sync is required with onQueryMedia(Bundle)
.
This method might be called by the OS frequently and is performance critical, hence it should avoid long running operations.
If the provider handled any filters in extras
, it must add the key to the
ContentResolver#EXTRA_HONORED_ARGS
as part of the returned Bundle
.
extras
Bundle
: containing keys to filter result:
This value may be null
.
onOpenMedia
public abstract ParcelFileDescriptor onOpenMedia (String mediaId, 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.
mediaId
String
: the media item to return
This value cannot 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
.
FileNotFoundException
onOpenThumbnail
public abstract AssetFileDescriptor onOpenThumbnail (String mediaId, Point size, CancellationSignal signal)
Returns a thumbnail of size
for a media item identified by mediaId
.
This is expected to be a much lower resolution version than the item returned by
onOpenMedia(String, CancellationSignal)
.
If you block while downloading content, you should periodically check
CancellationSignal#isCanceled()
to abort abandoned open requests.
mediaId
String
: the media item to return
This value cannot be null
.
size
Point
: the dimensions of the thumbnail to return. The returned file descriptor doesn't
have to match the size
precisely because the OS will adjust the dimensions before
usage. Implementations can return close approximations especially if the approximation is
already locally on the device and doesn't require downloading from the cloud.
This value cannot be null
.
signal
CancellationSignal
: used by the OS to signal if the request should be cancelled
This value may be null
.
Returns
AssetFileDescriptor
read-only file descriptor for accessing the thumbnail for the media file
This value cannot be null
.
FileNotFoundException
See also:
onQueryAlbums
public 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_MS
, i.e. most recent items first.
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#setExtras
Bundle
.
Cursor
cursor representing album items containing all
CloudMediaProviderContract.AlbumColumns
columns
This value cannot be null
.
onQueryDeletedMedia
public 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 onGetMediaInfo(Bundle)
. These items can
be optionally filtered by extras
.
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#setExtras
Bundle
.
Cursor
cursor representing deleted media items containing just the
CloudMediaProviderContract.MediaColumns#ID
column
This value cannot be null
.
onQueryMedia
public abstract Cursor onQueryMedia (String mediaId)
Returns a Cursor
to a single media item containing the columns representing the media
item identified by the CloudMediaProviderContract.MediaColumns#ID
with
mediaId
.
mediaId
String
: the media item to return
This value cannot be null
.
Cursor
cursor representing single media item containing all
CloudMediaProviderContract.MediaColumns
This value cannot be null
.
onQueryMedia
public 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_MS
, i.e. most recent items first.
If the cloud media provider handled any filters in extras
, it must add the key to
the ContentResolver#EXTRA_HONORED_ARGS
as part of the returned
Cursor#setExtras
Bundle
.
Cursor
cursor representing media items containing all
CloudMediaProviderContract.MediaColumns
columns
This value cannot be null
.
openFile
public final ParcelFileDescriptor openFile (Uri uri, String mode, CancellationSignal signal)
Implementation is provided by the parent class. Cannot be overridden.
uri
Uri
: This value cannot be null
.
mode
String
: This value cannot be null
.
signal
CancellationSignal
: This value may be null
.
ParcelFileDescriptor
This value cannot be null
.
FileNotFoundException
See also:
openFile
public final ParcelFileDescriptor openFile (Uri uri, String mode)
Implementation is provided by the parent class. Cannot be overridden.
uri
Uri
: This value cannot be null
.
mode
String
: This value cannot be null
.
ParcelFileDescriptor
This value cannot be null
.
FileNotFoundException
See also:
openTypedAssetFile
public final AssetFileDescriptor openTypedAssetFile (Uri uri, String mimeTypeFilter, Bundle opts)
Implementation is provided by the parent class. Cannot be overridden.
uri
Uri
: This value cannot be null
.
mimeTypeFilter
String
: This value cannot be null
.
opts
Bundle
: This value may be null
.
AssetFileDescriptor
This value cannot be null
.
FileNotFoundException
openTypedAssetFile
public final AssetFileDescriptor openTypedAssetFile (Uri uri, String mimeTypeFilter, Bundle opts, CancellationSignal signal)
Implementation is provided by the parent class. Cannot be overridden.
uri
Uri
: This value cannot be null
.
mimeTypeFilter
String
: This value cannot be null
.
opts
Bundle
: This value may be null
.
signal
CancellationSignal
: This value may be null
.
AssetFileDescriptor
This value cannot be null
.
FileNotFoundException
query
public final Cursor query (Uri uri, String[] projection, Bundle queryArgs, CancellationSignal cancellationSignal)
Implementation is provided by the parent class. Cannot be overridden.
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
.
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.
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
.
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.
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
.
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.
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
.
int
the number of rows affected.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK