从OnActivityResult上返回的内容URI获取文件或完整路径

时间:2015-11-06 22:14:53

标签: android

我希望用户选择任何文件类型,我使用以下代码:

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或我需要处理不同的数据类型吗?

1 个答案:

答案 0 :(得分:1)

  

如何从此uri获取绝对文件路径?

您没有,就像您没有从网址本身获取https://stackoverflow.com/questions/33576566/getting-file-or-full-path-from-content-uri-returned-on-onactivityresult(此问题的网址)的硬盘驱动器上的绝对路径一样。 Neither a URL nor a Uri is a file

使用ContentResolveropenInputStream()等方法来使用Uri标识的内容。

  

我是否总是得到内容:// uri或我需要处理不同的数据类型?

您将获得用户选择处理隐式Intent选择返回的任何活动。这应该是content: Uri值。它可能是file: Uri个值,但ContentResolver也可以处理这些值。