0

我在这里说的是 USB 而不是存储卡或内部存储器,并且需要一个确切的路径而不是 Uri。

直到 Android L 我从 /mnt 或 /storage 或任何其他目录获得文件路径。但在棉花糖中,我没有找到我的 USB 的确切位置。

然后我向存储访问框架前进。但它没有返回实际路径,而是返回了一个 Uri。

我还浏览了 AFileChooser Project 和 A stackoverflow post KitKat 上 Android Gallery 的 stackoverflow 帖子返回 Intent.ACTION_GET_CONTENT 的不同 Uri

但这没有帮助。所以有什么方法可以访问 Realpath,例如(/storage/abc/filename.mp4)。

4

1 回答 1

1

然后我向存储访问框架前进。但它没有返回实际路径,而是返回了一个 Uri。

那是因为存储访问框架不适用于文件。它适用于存储提供商。欢迎存储提供商存储他们的内容,但他们的开发人员想要。这可以包括存储在服务器上的内容、存储在数据库中的内容、存储在加密容器中的内容、动态生成的内容等等。这些都没有对您有意义的“实际路径”。而且,如果您使用的是存储访问框架,则用户可以选择用户想要的任何存储提供程序。

那么有什么方法可以访问像(/storage/abc/filename.mp4)这样的Realpath。

Uri使用Java I/O制作您自己的内容副本。然后你知道你的副本的“Realpath”。

AUri就像一个 URL。此网页的 URL 不需要映射到您计算机上的某个文件。除了自己下载内容并创建本地文件之外,没有任何神奇的算法可以将 URL 转换为本地文件路径。

于 2016-08-18T12:50:20.927 回答