iT邦幫忙

DAY 8
0

Android L 開發搶先看!系列 第 8

Android L 開發搶先看! — 儲存空間

資料夾選定

Android L 讓使用者可以選定一個資料夾,存取裡面的所有檔案都不需要再經過使用者的同意。

要選定這個資料夾,要先建立並送出一個 android.intent.action.OPEN_DOCUMENT_TREE 的 Intent,系統會顯示所有可以用來選擇資料夾的應用程式 (DocumentsProvider) 以供使用者選擇,選完會回傳一個用來存取這個資料夾的 URI,接著就可以使用 DocumentsContract.buildChildDocumentsUriUsingTree() 和 DocumentsContract.buildDocumentUriUsingTree() 加上 ContentResolver.query() 來存取內部的任何檔案。要在選定的資料夾下,

  1. 新建檔案或資料夾:DocumentsContract.createDocument()。
  2. 重新命名檔案或資料夾:DocumentsContract.renameDocument()。
  3. 刪除檔案或資料夾:DocumentsContract.deleteDocument()。

開發者若要自行實作一個支援資料夾選定的 DocumentsProvider,同時要實作 DocumentsProvider.isChildDocument() 和在 Root.COLUMN_FLAGS 內置入 Documents.Contract.FLAG_SUPPORTS_IS_CHILD。

Android L 新增了專放 Media 類型檔案的資料夾,程式中可以透過 android.content.Context.getExternalMediaDirs() 來存取,類似 Context.getExternalFilesDir(),存取資料夾內的檔案不需要額外的權限。系統會定時掃描這些資料夾,確定有無新檔案,但若需要,開發者仍然可以透過 MediaScannerConnection 手動啟動掃描。


上一篇
Android L 開發搶先看! — 多媒體
下一篇
Android L 開發搶先看! — 無線網路和連線 之一
系列文
Android L 開發搶先看!10

尚未有邦友留言

立即登入留言