我希望用户选择任何文件类型,我使用以下代码:
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 :(得分: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
使用ContentResolver
和openInputStream()
等方法来使用Uri
标识的内容。
我是否总是得到内容:// uri或我需要处理不同的数据类型?
您将获得用户选择处理隐式Intent
选择返回的任何活动。这应该是content:
Uri
值。它可能是file:
Uri
个值,但ContentResolver
也可以处理这些值。