2015-11-06 145 views
1

我希望用戶選擇任何類型的文件,我用下面的代碼可以這樣做:獲取文件或內容URI全路徑返回上OnActivityResult

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("*/*"); // TODO filter types 
startActivityForResult(intent, CONVERSATION_ATTACHMENT_REQ_CODE); 

然而,在onActivityResult我試圖讓文件路徑使用data.getDataString,但我得到content:// uri。
如何從此uri獲取絕對文件路徑?
我會不會總是得到content:// uri或我需要處理不同的數據類型?

+0

請貼上完整的代碼,以便更好地理解。 – lucky1928

回答

1

如何從此uri獲取絕對文件路徑?

你不這樣做,就像你沒有得到一個絕對的硬盤驅動器上的https://stackoverflow.com/questions/33576566/getting-file-or-full-path-from-content-uri-returned-on-onactivityresult從URL本身路徑(網址爲這個問題)。 Neither a URL nor a Uri is a file

使用ContentResolver和方法如openInputStream()來消耗由該Uri標識的內容。

我會一直得到內容:// uri's或我需要處理不同的數據類型嗎?

您將得到用戶選擇處理隱式選擇返回的活動。這應該是content:Uri值。它可能是file:Uri值,但ContentResolver也可以處理這些值。