使用Uri获取文件的路径

时间:2017-09-12 21:22:58

标签: android

我无法使用给定的URI获取文件的路径。

我有一个视频应用程序,根据从EditText读取的路径播放视频。

我创建了一个浏览按钮,允许我使用ACTION_GET_CONTENT打开内置文件资源管理器。

我希望无论我在文件资源管理器中点击什么视频,路径都会自动设置为我的EditText。

我迷失在我称之为onActivityResult的部分

    public Boolean onActivityResult(int requestcode, int resultCode, Intent data){
    if(requestCode == RECEIVE_DATA){
     Uri uriEnd = data.getData(); 
    //here I am unsure of how to get the Path with the given Uri
    //I am using SDK Build 24 Nougat
    }
    }

如果我调用uriEnd.getPath();我得到了一条奇怪的道路

我知道这个问题已被多次询问,我已经看了一下这些答案,但即使有了给出的建议,路径也永远不正确。

1 个答案:

答案 0 :(得分:1)

  

我无法使用给定的URI获取文件的路径。

Uri不是文件。

  

我创建了一个浏览按钮,允许我使用ACTION_GET_CONTENT打开内置文件资源管理器。

ACTION_GET_CONTENT不一定涉及任何类型的“文件浏览器”。

  

如果我调用uriEnd.getPath();我得到了一条奇怪的道路

如果getPath()的方案为Uri,则Uri上的

file仅具有意义。最有可能的是,Uri的方案是content。该路径对您和用户来说毫无意义。向用户展示它几乎没有价值,将它放入要编辑的EditText中的价值更低(因为编辑后的结果不太可能指向任何东西)。

因此,我建议你提出另一个用户界面,不需要向用户显示Uri ACTION_GET_CONTENT