2015-11-06 94 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也可以处理这些值。