2012-02-02 37 views

回答

2

聽起來像ACTION_GET_CONTENT是你想要的。 See here。相關位應該是:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
startActivityForResult(intent,PICKFILE_RESULT_CODE); 

在我的手機上(它已安裝astro),這會啓動/ sdcard的天文對話框。我不確定這會在沒有安裝文件瀏覽器的手機上執行什麼操作。我也不確定您是否能夠使用此方法實際指定起始路徑。文檔使得它聽起來像你不能指定ACTION_GET_CONTENT的起始URI。

編輯:我想我現在更好地理解這個問題。我以爲你想要一個選擇器樣式瀏覽器來獲取用戶的文件路徑。如果你想要一個完全成熟的瀏覽器來處理你的URI,那麼這個工作對我來說:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse("file:///mnt/sdcard/Music"), "*/*"); 
startActivity(intent); 

這將可能給你一個可能處理的相當長的名單,但我敢打賭,系統上的任何文件管理器會在列表中(astro肯定是)。

+0

這似乎工作,但有點hack-ish。它以「選擇模式」啓動活動,因此如果您單擊某件事物,它只會關閉文件瀏覽器。但是,您仍然可以長時間點擊項目來修改它們。它也只適用於某些文件瀏覽器。它適用於OI,但不適用於根瀏覽器。但是,您可以通過爲'setDataAndType(Uri,String)'提供路徑來指定路徑。 __Overall__,這似乎是現在最好的方法:/ – Snailer 2012-02-02 22:40:35

+0

這是一個很好的例子,這個例子對我非常有幫助。它完美的使用'Astro文件管理器'。但我使用的一些文件管理器是'Astro File Manager','Root Browser','OI File Manager'和'Default File Manager'。我非常抱歉,這個代碼'intent.setDataAndType(Uri.parse(「file:/// mnt/sdcard/Music」),「*/*」);'只適用於'Astro File Manager'以及爲什麼其他文件管理器不支持此代碼。我可以在哪裏更改代碼以訪問其他文件管理器。你可以幫我嗎。謝謝。 – Sekar 2012-08-13 09:59:15

1

我不相信任何製造商提供的文件瀏覽器提供這樣的事情。

雖然我沒有看到這樣做的理論有明顯的錯誤。我想你更有可能使用此功能找到第三方文件瀏覽器,但我從未遇到過這些功能。

你可能會看看Open Intents OI File Manager這個概念似乎是他們的盟友,如果他們還沒有這個功能,我敢打賭,他們可能會考慮增加它,如果你與他們接觸。

0

這裏我要告訴你如何創建一個BROWSE按鈕,當你點擊它時,它會打開SDCARD,你將選擇一個文件,結果你將得到文件名和文件路徑選擇一個:

//一個按鈕,你會打**

browse.setOnClickListener(new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
     Intent intent = new Intent(); 
     intent.setAction(Intent.ACTION_PICK); 
     Uri startDir = Uri.fromFile(new File("/sdcard")); 
     startActivityForResult(intent, PICK_REQUEST_CODE); 
     } 

    }); 

//這將讓所得到的文件名和文件路徑

功能