2013-09-24 63 views
0

我想使用Intent來啓動一個應用程序來選擇一個文件夾。我已經看了很多關於這方面的線程,並且我還沒有找到任何解決方案,除了那些對特定應用程序(如OI)進行硬編碼引用的解決方案。 例如:Intent intent = new Intent("org.openintents.action.PICK_DIRECTORY");意圖過濾器允許其他應用程序連接到這個應用程序來選擇文件夾

我不斷收到這些錯誤可能是因爲我的模擬器上沒有它合適的應用程序:

  • //無活動處理意向{行動= android.intent .action.PICK dat = directory://}
  • //找不到處理意圖的行爲{act = android.intent.action.PICK dat = folder://}
  • //找不到處理意圖的行爲{act = android.intent.action.PICK dat = content://vnd.google-apps.folder}
  • //找不到處理Intent的行爲{act = android.intent.action.PICK dat = file:/// storage/emulated/0}
  • //找不到處理Intent的行爲{act = android。 intent.action.GET_CONTENT DAT =文件:///存儲/模擬/ 0}

我已經發現了幾個樣品的應用程序,做迴文件或文件夾。我想我會抓住其中一個,並將其改寫爲我的用法。我寧願讓Intent用於儘可能通用地啓動它,而不是硬編碼我的應用程序的名稱。

什麼是Intentsintent-filters哪對我需要添加代碼以允許某些應用程序和我的文件/文件夾選擇器程序之間的連接?

+0

你看過這篇文章: http://stackoverflow.com/questions/9923760/how-to-use-intent-for-choosing-file-browser-to-select-file 更具體地說,其中的鏈接: https://code.google。com/p/android-file-dialog/ –

回答

1

我需要添加代碼以允許某些應用程序和我的文件/文件夾選擇器程序之間的連接,這些意向和意圖過濾器對是什麼?

這裏沒有我知道的標準,除了*/*的MIME類型可能是ACTION_GET_CONTENT

您的五個項目符號的嘗試中,只有第四個將被認爲是普遍有效的:

  • 前兩個使用可能無法識別
  • 三是依賴於一些谷歌ContentProvider
  • 方案第五個是格式不正確,因爲ACTION_GET_CONTENT是按MIME類型選擇的,而不是容器

歡迎您嘗試帶頭定義在這個空間的某些標準中,或者做Aleksander建議的內容,並使用庫在應用程序中提供此功能,而不是依賴外部應用程序。

+0

Spearheading總是很有趣,只是你爲這個項目花了多少時間,以及你願意付出多少努力:)如果選擇一個文件夾或文件是你所需要的,它不應該花費太多時間才能將它構建到你的應用程序中,而不是使用外部的東西。 –

+0

問題是如何區分詢問文件和詢問文件夾。 */*的MIME類型不會說什麼是想要的。 – NormR

+0

@NormR:Android中沒有「文件夾」,不僅僅是在Web瀏覽器中。 – CommonsWare

相關問題