想在android 6 marshmallow中从Usb获取文件Realpath?

时间:2016-08-18 12:36:16

标签: android usb storage android-6.0-marshmallow storage-access-framework

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

直到Android L我从/ mnt或/ storage或任何其他目录中获取文件路径。但在marshmallow中,我并没有找到我的usb确切位置。

然后我向存储访问框架前进。但是它没有返回它给Uri返回的实际路径。

我还要浏览AFileChooser项目和一个stackoverflow帖子 Android Gallery on KitKat returns different Uri for Intent.ACTION_GET_CONTENT

但它没有帮助。所以我可以像(/storage/abc/filename.mp4)一样访问Realpath。

1 个答案:

答案 0 :(得分:1)

  

然后我向存储访问框架前进。但是它没有返回它给Uri返回的实际路径。

这是因为存储访问框架无法处理文件。它适用于存储提供商。欢迎存储提供商存储他们的开发人员想要的内容。这可以包括存储在服务器上的内容,存储在数据库中的内容,存储在加密容器中的内容,即时生成的内容等。其中没有一个人拥有"实际路径"这对你有意义。而且,如果您使用的是存储访问框架,则用户可以选择用户想要的任何存储提供程序。

  

所以我可以像(/storage/abc/filename.mp4)一样访问Realpath。

使用Uri和Java I / O制作您自己的内容副本。那么你就知道" Realpath"你的副本。

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