DocumentsProvider 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
文件提供者的基底類別。
[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
- 繼承
- 屬性
備註
文件提供者的基底類別。 文件提供者提供對持久檔案的讀寫存取,例如儲存在本地磁碟上的檔案,或雲端儲存服務中的檔案。 要建立文件提供者,擴充此類別,實作抽象方法,並像這樣加入你的清單:
<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>
在定義你的服務提供者時,你必須用 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 |
回傳此 |
| 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 |
|---|---|
| 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
文件提供者的基底類別。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |