DocumentsProvider Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Base class for a document provider.
[Android.Runtime.Register("android/provider/DocumentsProvider", DoNotGenerateAcw=true)]
public abstract class DocumentsProvider : Android.Content.ContentProvider
[<Android.Runtime.Register("android/provider/DocumentsProvider", DoNotGenerateAcw=true)>]
type DocumentsProvider = class
inherit ContentProvider
- Inheritance
- Attributes
Remarks
Base class for a document provider. A document provider offers read and write access to durable files, such as files stored on a local disk, or files in a cloud storage service. To create a document 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:grantUriPermissions="true"
android:permission="android.permission.MANAGE_DOCUMENTS"
android:enabled="@bool/isAtLeastKitKat">
<intent-filter>
<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
</intent-filter>
</provider>
...
</application>
</manifest>
When defining your provider, you must protect it with android.Manifest.permission#MANAGE_DOCUMENTS
, which is a permission only the system can obtain. Applications cannot use a documents provider directly; they must go through Intent#ACTION_OPEN_DOCUMENT
or Intent#ACTION_CREATE_DOCUMENT
which requires a user to actively navigate and select documents. When a user selects documents through that UI, the system issues narrow URI permission grants to the requesting application.
<h3>Documents</h3>
A document can be either an openable stream (with a specific MIME type), or a directory containing additional documents (with the Document#MIME_TYPE_DIR
MIME type). Each directory represents the top of a subtree containing zero or more documents, which can recursively contain even more documents and directories.
Each document can have different capabilities, as described by Document#COLUMN_FLAGS
. For example, if a document can be represented as a thumbnail, your provider can set Document#FLAG_SUPPORTS_THUMBNAIL
and implement #openDocumentThumbnail(String, Point, CancellationSignal)
to return that thumbnail.
Each document under a provider is uniquely referenced by its Document#COLUMN_DOCUMENT_ID
, which must not change once returned. A single document can be included in multiple directories when responding to #queryChildDocuments(String, String[], String)
. For example, a provider might surface a single photo in multiple locations: once in a directory of geographic locations, and again in a directory of dates.
<h3>Roots</h3>
All documents are surfaced through one or more "roots." Each root represents the top of a document tree that a user can navigate. For example, a root could represent an account or a physical storage device. Similar to documents, each root can have capabilities expressed through Root#COLUMN_FLAGS
.
Java documentation for android.provider.DocumentsProvider
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Constructors
DocumentsProvider() | |
DocumentsProvider(IntPtr, JniHandleOwnership) |
A constructor used when creating managed representations of JNI objects; called by the runtime. |
Properties
CallingAttributionSource |
Gets the attribution source of the calling app. (Inherited from ContentProvider) |
CallingAttributionTag |
Return the attribution tag of the caller that initiated the request being processed on the current thread. (Inherited from ContentProvider) |
CallingPackage |
Return the package name of the caller that initiated the request being processed on the current thread. (Inherited from ContentProvider) |
CallingPackageUnchecked |
Return the package name of the caller that initiated the request being processed on the current thread. (Inherited from ContentProvider) |
Class |
Returns the runtime class of this |
Context |
Retrieves the Context this provider is running in. (Inherited from ContentProvider) |
Handle |
The handle to the underlying Android instance. (Inherited from Object) |
IsTemporary |
Returns true if this instance is a temporary content provider. (Inherited from ContentProvider) |
JniIdentityHashCode | (Inherited from Object) |
JniPeerMembers | |
PeerReference | (Inherited from Object) |
ReadPermission |
Obsolete.
Return the name of the permission required for read-only access to this content provider. -or- Change the permission required to read data from the content provider. (Inherited from ContentProvider) |
ThresholdClass |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
ThresholdType |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
WritePermission |
Obsolete.
Return the name of the permission required for read/write access to this content provider. -or- Change the permission required to read and write data in the content provider. (Inherited from ContentProvider) |
Methods
ApplyBatch(IList<ContentProviderOperation>) |
Override this to handle requests to perform a batch of operations, or the
default implementation will iterate over the operations and call
|
ApplyBatch(String, IList<ContentProviderOperation>) |
Override this to handle requests to perform a batch of operations, or the
default implementation will iterate over the operations and call
|
AttachInfo(Context, ProviderInfo) |
After being instantiated, this is called to tell the content provider about itself. (Inherited from ContentProvider) |
BulkInsert(Uri, ContentValues[]) |
Override this to handle requests to insert a set of new rows, or the
default implementation will iterate over the values and call
|
Call(String, String, Bundle) |
Call a provider-defined method. (Inherited from ContentProvider) |
Call(String, String, String, Bundle) |
Call a provider-defined method. (Inherited from ContentProvider) |
Canonicalize(Uri) |
Implement this to support canonicalization of URIs that refer to your content provider. (Inherited from ContentProvider) |
ClearCallingIdentity() |
Reset the identity of the incoming IPC on the current thread. (Inherited from ContentProvider) |
Clone() |
Creates and returns a copy of this object. (Inherited from Object) |
CopyDocument(String, String) |
Copy the requested document or a document tree. |
CreateDocument(String, String, String) |
Create a new document and return its newly generated
|
CreateWebLinkIntent(String, Bundle) |
Creates an intent sender for a web link, if the document is web linkable. |
Delete(Uri, Bundle) |
Implement this to handle requests to delete one or more rows. (Inherited from ContentProvider) |
Delete(Uri, String, String[]) |
Implementation is provided by the parent class. |
DeleteDocument(String) |
Delete the requested document. |
Dispose() | (Inherited from Object) |
Dispose(Boolean) | (Inherited from Object) |
Dump(FileDescriptor, PrintWriter, String[]) |
Print the Provider's state into the given stream. (Inherited from ContentProvider) |
DumpAsync(FileDescriptor, PrintWriter, String[]) | (Inherited from ContentProvider) |
EjectRoot(String) |
Ejects the root. |
Equals(Object) |
Indicates whether some other object is "equal to" this one. (Inherited from Object) |
FindDocumentPath(String, String) |
Finds the canonical path for the requested document. |
GetDocumentMetadata(String) |
Returns metadata associated with the document. |
GetDocumentStreamTypes(String, String) |
Return a list of streamable MIME types matching the filter, which can be passed to
|
GetDocumentType(String) |
Return concrete MIME type of the requested document. |
GetHashCode() |
Returns a hash code value for the object. (Inherited from Object) |
GetPathPermissions() |
Return the path-based permissions required for read and/or write access to this content provider. (Inherited from ContentProvider) |
GetStreamTypes(Uri, String) |
Called by a client to determine the types of data streams that this content provider supports for the given URI. (Inherited from ContentProvider) |
GetType(Uri) |
Implementation is provided by the parent class. |
GetTypeAnonymous(Uri) |
An unrestricted version of getType, which does not reveal sensitive information |
GetTypeAnonymous(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. (Inherited from ContentProvider) |
Insert(Uri, ContentValues) |
Implementation is provided by the parent class. |
Insert(Uri, ContentValues, Bundle) |
Implement this to handle requests to insert a new row. (Inherited from ContentProvider) |
IsChildDocument(String, String) |
Test if a document is descendant (child, grandchild, etc) from the given parent. |
JavaFinalize() |
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. (Inherited from Object) |
MoveDocument(String, String, String) |
Move the requested document or a document tree. |
Notify() |
Wakes up a single thread that is waiting on this object's monitor. (Inherited from Object) |
NotifyAll() |
Wakes up all threads that are waiting on this object's monitor. (Inherited from Object) |
OnCallingPackageChanged() |
Called whenever the value of |
OnConfigurationChanged(Configuration) |
To be added This method is always called on the application main thread, and must not perform lengthy operations. (Inherited from ContentProvider) |
OnCreate() |
Implement this to initialize your content provider on startup. (Inherited from ContentProvider) |
OnLowMemory() |
To be added This method is always called on the application main thread, and must not perform lengthy operations. (Inherited from ContentProvider) |
OnTrimMemory(TrimMemory) |
Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. (Inherited from ContentProvider) |
OpenAssetFile(Uri, String) |
Implementation is provided by the parent class. |
OpenAssetFile(Uri, String, CancellationSignal) |
Implementation is provided by the parent class. |
OpenDocument(String, String, CancellationSignal) |
Open and return the requested document. |
OpenDocumentThumbnail(String, Point, CancellationSignal) |
Open and return a thumbnail of the requested document. |
OpenFile(Uri, String) |
Implementation is provided by the parent class. |
OpenFile(Uri, String, CancellationSignal) |
Implementation is provided by the parent class. |
OpenFileHelper(Uri, String) |
Convenience for subclasses that wish to implement |
OpenPipeHelper(Uri, String, Bundle, Object, ContentProvider+IPipeDataWriter) |
A helper function for implementing |
OpenTypedAssetFile(Uri, String, Bundle) |
Implementation is provided by the parent class. |
OpenTypedAssetFile(Uri, String, Bundle, CancellationSignal) |
Implementation is provided by the parent class. |
OpenTypedDocument(String, String, Bundle, CancellationSignal) |
Open and return the document in a format matching the specified MIME type filter. |
Query(Uri, String[], Bundle, CancellationSignal) |
Implementation is provided by the parent class. |
Query(Uri, String[], String, String[], String) |
Implementation is provided by the parent class. |
Query(Uri, String[], String, String[], String, CancellationSignal) |
Implement this to handle query requests from clients with support for cancellation. (Inherited from ContentProvider) |
QueryChildDocuments(String, String[], Bundle) |
Override this method to return the children documents contained in the requested directory. |
QueryChildDocuments(String, String[], String) |
Return the children documents contained in the requested directory. |
QueryDocument(String, String[]) |
Return metadata for the single requested document. |
QueryRecentDocuments(String, String[]) |
Return recently modified documents under the requested root. |
QueryRecentDocuments(String, String[], Bundle, CancellationSignal) |
Return recently modified documents under the requested root. |
QueryRoots(String[]) |
Return all roots currently provided. |
QuerySearchDocuments(String, String, String[]) |
Return documents that match the given query under the requested root. |
QuerySearchDocuments(String, String[], Bundle) |
Return documents that match the given query under the requested root. |
Refresh(Uri, Bundle, CancellationSignal) |
Implement this to support refresh of content identified by |
RemoveDocument(String, String) |
Removes the requested document or a document tree. |
RenameDocument(String, String) |
Rename an existing document. |
RequireContext() |
Retrieves a Non-Nullable Context this provider is running in, this is intended to be called
after |
RestoreCallingIdentity(ContentProvider+CallingIdentity) |
Restore the identity of the incoming IPC on the current thread back to a
previously identity that was returned by |
RevokeDocumentPermission(String) |
Revoke any active permission grants for the given
|
SetHandle(IntPtr, JniHandleOwnership) |
Sets the Handle property. (Inherited from Object) |
SetPathPermissions(PathPermission[]) |
Change the path-based permission required to read and/or write data in the content provider. (Inherited from ContentProvider) |
SetReadPermission(String) | (Inherited from ContentProvider) |
SetWritePermission(String) | (Inherited from ContentProvider) |
Shutdown() |
Implement this to shut down the ContentProvider instance. (Inherited from ContentProvider) |
ToArray<T>() | (Inherited from Object) |
ToString() |
Returns a string representation of the object. (Inherited from Object) |
Uncanonicalize(Uri) |
Remove canonicalization from canonical URIs previously returned by
|
UnregisterFromRuntime() | (Inherited from Object) |
Update(Uri, ContentValues, Bundle) |
Implement this to handle requests to update one or more rows. (Inherited from ContentProvider) |
Update(Uri, ContentValues, String, String[]) |
Implementation is provided by the parent class. |
Wait() |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>. (Inherited from Object) |
Wait(Int64) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Wait(Int64, Int32) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Explicit Interface Implementations
IJavaPeerable.Disposed() | (Inherited from Object) |
IJavaPeerable.DisposeUnlessReferenced() | (Inherited from Object) |
IJavaPeerable.Finalized() | (Inherited from Object) |
IJavaPeerable.JniManagedPeerState | (Inherited from Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) | (Inherited from Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) | (Inherited from Object) |
Extension Methods
JavaCast<TResult>(IJavaObject) |
Performs an Android runtime-checked type conversion. |
JavaCast<TResult>(IJavaObject) | |
GetJniTypeName(IJavaPeerable) |