2015-04-21 92 views
8

我將文檔訪問框架與我的雲存儲訪問應用程序集成在一起。 使用this文檔我已經能夠訪問該文件並檢索它(我只是使用Gmail應用程序的附加功能來檢查此文件)。在Android中使用存儲訪問框架保存文件

我現在正在試圖找到如何使用相同的方法(通過應用雲存儲直接保存文件)保存文件,我已經做了以下修改:

對於getRoots打電話,

row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE); 

我也覆蓋了createDocument方法。

我沒有看到太多關於如何做到這一點的示例代碼或文檔。我也看到一些像「照片」應用程序這樣的應用程序具有使用不同方法的「共享」按鈕(日誌顯示miniShareActivity),我的應用程序沒有顯示出來(看起來它使用的是不同的文件共享機制)

我找資料

  1. 如何使用SAF來存儲文件(任何樣本文件將是巨大的或指針文件)。我假設它將允許用戶使用選擇器界面導航到文件夾並存儲文件。

  2. 如何讓應用程序在應用程序的「Minishare活動」列表中顯示的文件導入到應用程序(它看起來像它並沒有提供一個挑選器界面,但我還是想提供支持,使該文件被保存到默認位置)

+0

我的懷疑基於https://developer.android.com/guide/topics/providers/document-provider.html上的「獲取InputStream」和「創建新文檔」示例,您可能希望做後者,然後像getContentResolver()。openOutputStream(uri);關鍵在於,儘管您可以通過與File類似的方式讀取和寫入結果,但不一定有任何方法可以獲得與其相對應的文字java.io.File。 –

+0

這些示例來自客戶端應用程序的角度,但我正在嘗試查看文檔提供者所需的其他設置。具有客戶端和提供者端代碼的示例將是理想的 – rydgaze

+0

這可能對您有所幫助:http://www.techotopia.com/index.php/An_Android_Storage_Access_Framework_Example#Creating_a_New_Storage_File – powder366

回答

0

你指的是在其他應用中的共享按鈕可能使用ACTION_SEND爲意圖的行動,而不是與存儲訪問框架介紹ACTION_CREATE_DOCUMENT

您可能想同時支持這兩種方法,因爲ACTION_CREATE_DOCUMENT僅在KitKat中引入,而舊版應用程序可能不知道它。同樣,您可能也希望支持意圖操作ACTION_GET_CONTENT,以便在預先KitKat設備上進行讀取訪問(ACTION_GET_CONTENT在KitKat +上運行時由SAF處理,但您的應用程序在預先KitKat設備上運行時仍需要處理它)。 AndroidManifest中的<intent-filter>是否設置爲匹配所有這些Intent類型?

相關問題