語言

DocumentsProvider 類別

定義

文件提供者的基底類別。

[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
繼承
屬性

備註

文件提供者的基底類別。 文件提供者提供對持久檔案的讀寫存取,例如儲存在本地磁碟上的檔案,或雲端儲存服務中的檔案。 要建立文件提供者,擴充此類別,實作抽象方法,並像這樣加入你的清單:

&lt;manifest&gt;
               ...
               &lt;application&gt;
                   ...
                   &lt;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"&gt;
                       &lt;intent-filter&gt;
                           &lt;action android:name="android.content.action.DOCUMENTS_PROVIDER" /&gt;
                       &lt;/intent-filter&gt;
                   &lt;/provider&gt;
                   ...
               &lt;/application&gt;
            &lt;/manifest&gt;

在定義你的服務提供者時,你必須用 android.Manifest.permission#MANAGE_DOCUMENTS來保護它,這是只有系統能取得的權限。 應用程式不能直接使用文件提供者;它們必須經過 Intent#ACTION_OPEN_DOCUMENT 或 Intent#ACTION_CREATE_DOCUMENT 需要使用者主動瀏覽並選擇文件。 當使用者透過該介面選擇文件時,系統會向請求應用程式授予狹窄的 URI 權限。

<h3>文件</h3>

文件可以是可開啟的串流(具有特定 MIME 類型),或是包含額外文件的目錄(具有 Document#MIME_TYPE_DIR MIME 類型)。 每個目錄代表包含零或多個文件的子樹頂端,該子樹可遞迴地包含更多文件與目錄。

每個文件可以具備不同的功能,如 所描述 Document#COLUMN_FLAGS。 例如,如果文件可以以縮圖表示,你的提供者可以設定 Document#FLAG_SUPPORTS_THUMBNAIL 並實作 #openDocumentThumbnail(String, Point, CancellationSignal) 回傳該縮圖。

提供者下的每份文件都以其 Document#COLUMN_DOCUMENT_ID唯一引用,且返回後不得更改。 當回應 #queryChildDocuments(String, String[], String)時,一份文件可以包含在多個目錄中。 例如,提供者可能會將一張照片同時出現在多個地點:一次在地理位置目錄中,另一次在日期目錄中。

<h3>根</h3>

所有文件都透過一個或多個「根」浮現。 每個根節點代表使用者可瀏覽的文件樹頂端。 例如,根節點可以代表帳號或實體儲存裝置。 與文件類似,每個根節點都可以有能力透過 Root#COLUMN_FLAGS來表達。

Java 文件 android.provider.DocumentsProvider。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
DocumentsProvider()
DocumentsProvider(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

屬性

名稱 Description
CallingAttributionSource

取得通話應用程式的歸因來源。

(繼承來源 ContentProvider)
CallingAttributionTag

回傳發起當前執行緒請求的呼叫者的歸因標籤。

(繼承來源 ContentProvider)
CallingPackage

回傳發起當前執行緒請求的呼叫者的套件名稱。

(繼承來源 ContentProvider)
CallingPackageUnchecked

回傳發起當前執行緒請求的呼叫者的套件名稱。

(繼承來源 ContentProvider)
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Context

取得此提供者正在執行的上下文。

(繼承來源 ContentProvider)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsTemporary

如果此實例是暫時性內容提供者,則回傳為真。

(繼承來源 ContentProvider)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

文件提供者的基底類別。

(繼承來源 JavaObject)
JniPeerMembers

文件提供者的基底類別。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ReadPermission
已淘汰.

請回傳該內容提供者的唯讀權限名稱。 -或- 更改讀取內容提供者資料所需的權限。

(繼承來源 ContentProvider)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

WritePermission
已淘汰.

回傳讀寫存取本內容提供者所需的權限名稱。 -或- 更改內容提供者中讀寫資料所需的權限。

(繼承來源 ContentProvider)

方法

名稱 Description
ApplyBatch(IList<ContentProviderOperation>)

覆寫此設定以處理執行一批操作的請求,否則預設實作會反覆處理這些操作並呼叫 ContentProviderOperation#apply 每一個操作。

(繼承來源 ContentProvider)
ApplyBatch(String, IList<ContentProviderOperation>)

覆寫此設定以處理執行一批操作的請求,否則預設實作會反覆處理這些操作並呼叫 ContentProviderOperation#apply 每一個操作。

(繼承來源 ContentProvider)
AttachInfo(Context, ProviderInfo)

實例化後,會呼叫內容提供者自身。

(繼承來源 ContentProvider)
BulkInsert(Uri, ContentValues[])

覆寫此設定以處理插入一組新資料列的請求,否則預設實作會遍歷這些值並 #insert 呼叫每個值。

(繼承來源 ContentProvider)
Call(String, String, Bundle)

呼叫提供者定義的方法。

(繼承來源 ContentProvider)
Call(String, String, String, Bundle)

呼叫提供者定義的方法。

(繼承來源 ContentProvider)
Canonicalize(Uri)

實作此功能以支援指向你內容提供者的 URI 的標準化。

(繼承來源 ContentProvider)
ClearCallingIdentity()

在目前執行緒中重設接收 IPC 的身份。

(繼承來源 ContentProvider)
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

文件提供者的基底類別。

(繼承來源 JavaObject)
CopyDocument(String, String)

複製所請求的文件或文件樹。

CreateDocument(String, String, String)

建立一個新文件並返回新產生 Document#COLUMN_DOCUMENT_ID的 。

CreateWebLinkIntent(String, Bundle)

若文件可網頁連結,則建立一個意圖發送者。

Delete(Uri, Bundle)

實作這個功能來處理刪除一列或多列的請求。

(繼承來源 ContentProvider)
Delete(Uri, String, String[])

實作由父類別提供。

DeleteDocument(String)

刪除所要求的文件。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

文件提供者的基底類別。

(繼承來源 JavaObject)
Dump(FileDescriptor, PrintWriter, String[])

將提供者的狀態印入給定的串流中。

(繼承來源 ContentProvider)
DumpAsync(FileDescriptor, PrintWriter, String[])

將提供者的狀態印入給定的串流中。 如果你執行「adb shell dumpsys activity provider <provider_component_name>」,這個會被喚用。

(繼承來源 ContentProvider)
EjectRoot(String)

直接彈出根部。

Equals(Object)

文件提供者的基底類別。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
FindDocumentPath(String, String)

找到所請求文件的典範路徑。

GetDocumentMetadata(String)

回傳與文件相關的元資料。

GetDocumentStreamTypes(String, String)

回傳一份符合濾波器的可串流 MIME 類型清單,可傳遞給 #openTypedDocument(String, String, Bundle, CancellationSignal)。

GetDocumentType(String)

回傳所請求文件的具體 MIME 類型。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetPathPermissions()

回傳讀取及/或寫入此內容提供者所需的路徑權限。

(繼承來源 ContentProvider)
GetStreamTypes(Uri, String)

由用戶端呼叫以判斷該內容提供者支援給定 URI 的資料串流類型。

(繼承來源 ContentProvider)
GetType(Uri)

實作由父類別提供。

GetTypeAnonymous(Uri)

getType 的無限制版本,不會揭露敏感資訊

Insert(Uri, ContentValues, Bundle)

實作這個功能來處理插入新列的請求。

(繼承來源 ContentProvider)
Insert(Uri, ContentValues)

實作由父類別提供。

IsChildDocument(String, String)

測試文件是否為該父母的後代(子女、孫輩等)。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
MoveDocument(String, String, String)

移動請求的文件或文件樹。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
OnCallingPackageChanged()

每當 變更 #getCallingPackage() 值發生時就會呼叫,讓提供者有機會使其執行的任何安全相關快取失效。

(繼承來源 ContentProvider)
OnConfigurationChanged(Configuration)

新增此方法必須在應用程式主執行緒中被呼叫,且不得執行冗長操作。

(繼承來源 ContentProvider)
OnCreate()

在啟動時實作這個功能來初始化你的內容提供者。

(繼承來源 ContentProvider)
OnLowMemory()

新增此方法必須在應用程式主執行緒中被呼叫,且不得執行冗長操作。

(繼承來源 ContentProvider)
OnTrimMemory(TrimMemory)

當作業系統判斷程序是刪除其程序中不需要記憶體的好時機時,會被呼叫。

(繼承來源 ContentProvider)
OpenAssetFile(Uri, String, CancellationSignal)

實作由父類別提供。

OpenAssetFile(Uri, String)

實作由父類別提供。

OpenDocument(String, String, CancellationSignal)

打開並歸還所要求的文件。

OpenDocumentThumbnail(String, Point, CancellationSignal)

打開並返回所需的文件縮圖。

OpenFile(Uri, String, CancellationSignal)

實作由父類別提供。

OpenFile(Uri, String)

實作由父類別提供。

OpenFileHelper(Uri, String)

對於想要實作 #openFile 的子類別來說,透過在指定 URI 中查找名為「_data」的欄位,方便使用。

(繼承來源 ContentProvider)
OpenPipeHelper(Uri, String, Bundle, Object, ContentProvider+IPipeDataWriter)

一個幫助函式,用於實作 #openTypedAssetFile資料管道和背景執行緒,讓你能將產生的資料串流回用戶端。

(繼承來源 ContentProvider)
OpenTypedAssetFile(Uri, String, Bundle, CancellationSignal)

實作由父類別提供。

OpenTypedAssetFile(Uri, String, Bundle)

實作由父類別提供。

OpenTypedDocument(String, String, Bundle, CancellationSignal)

打開文件後,以符合指定 MIME 類型過濾器的格式返回。

Query(Uri, String[], Bundle, CancellationSignal)

實作由父類別提供。

Query(Uri, String[], String, String[], String, CancellationSignal)

實作此功能以處理客戶端的查詢請求,並支援取消功能。

(繼承來源 ContentProvider)
Query(Uri, String[], String, String[], String)

實作由父類別提供。

QueryChildDocuments(String, String[], Bundle)

覆寫此方法以返回所請求目錄中包含的子文件。

QueryChildDocuments(String, String[], String)

返回所請求目錄中包含的子文件。

QueryDocument(String, String[])

回傳單一請求文件的元資料。

QueryRecentDocuments(String, String[], Bundle, CancellationSignal)

以請求的根目錄回傳最近修改的文件。

QueryRecentDocuments(String, String[])

以請求的根目錄回傳最近修改的文件。

QueryRoots(String[])

退回所有目前提供的根。

QuerySearchDocuments(String, String, String[], CancellationSignal)

回傳與所請求目錄中查詢相符的文件。

QuerySearchDocuments(String, String, String[])

回傳符合所請求根查詢的文件。

QuerySearchDocuments(String, String[], Bundle, CancellationSignal)

回傳與所請求目錄中查詢相符的文件。

QuerySearchDocuments(String, String[], Bundle)

回傳符合所請求根查詢的文件。

QueryTrashDocuments(String, String[], Bundle, CancellationSignal)

文件提供者的基底類別。

Refresh(Uri, Bundle, CancellationSignal)

實作此功能以支援由 所識別 uri的內容刷新。

(繼承來源 ContentProvider)
RemoveDocument(String, String)

移除所請求的文件或文件樹。

RenameDocument(String, String)

重新命名現有文件。

RequireContext()

擷取此提供者正在執行的非空(Non-Nullable)上下文,該上下文預定在 #onCreate後呼叫。

(繼承來源 ContentProvider)
RestoreCallingIdentity(ContentProvider+CallingIdentity)

將當前執行緒中接收的 IPC 身份恢復回先前由 #clearCallingIdentity返回的身份。

(繼承來源 ContentProvider)
RestoreDocumentFromTrash(String, String)

還原指定的垃圾文件。

RevokeDocumentPermission(String)

撤銷所有有效的授權 Document#COLUMN_DOCUMENT_ID,通常在文件無效時會被啟動。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPathPermissions(PathPermission[])

更改內容提供者中讀取和/或寫入資料所需的路徑權限。

(繼承來源 ContentProvider)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

文件提供者的基底類別。

(繼承來源 JavaObject)
SetReadPermission(String)

更改閱讀內容提供者資料所需的權限。 這通常是根據服務成立時的清單資訊自動設定的。

(繼承來源 ContentProvider)
SetWritePermission(String)

更改在內容提供者中寫入資料所需的權限。 這通常是根據服務成立時的清單資訊自動設定的。

(繼承來源 ContentProvider)
Shutdown()

實作這個功能來關閉 ContentProvider 實例。

(繼承來源 ContentProvider)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
TrashDocument(String)

丟棄被要求的文件。

Uncanonicalize(Uri)

移除先前由 #canonicalize返回的典範 URI 中的典範化。

(繼承來源 ContentProvider)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Update(Uri, ContentValues, Bundle)

實作這個功能來處理更新一列或多列的請求。

(繼承來源 ContentProvider)
Update(Uri, ContentValues, String, String[])

實作由父類別提供。

Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

文件提供者的基底類別。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

文件提供者的基底類別。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

文件提供者的基底類別。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

文件提供者的基底類別。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

文件提供者的基底類別。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

文件提供者的基底類別。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

文件提供者的基底類別。

(繼承來源 ContentProvider)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

文件提供者的基底類別。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於