我正在编写一个应用程序,允许用户从外部位置(如下载文件夹)导入自己的数据(通过.zip,.png等)。
我的应用正确地从URI获取文件路径,但是我不希望在我的应用中需要WRITE_EXTERNAL_STORAGE权限,我需要这样才能读取用户提供给我的文件。我觉得Android应该允许我的应用程序读取此文件的权限,因为用户选择了它。
有没有办法让Android将此文件复制到我可以阅读的临时位置,这样我就不需要询问用户这个权限了吗?
答案 0 :(得分:1)
如果您不想获得该权限,那么Android4.4及更高版本就有了一种方法。让用户将数据导入程序目录,另见:
从Android 4.4开始,文件的所有者,组和模式 外部存储设备现在基于目录合成 结构体。这使应用程序可以管理其特定于程序包 外部存储上的目录,不需要他们持有广泛的 WRITE_EXTERNAL_STORAGE权限。例如,带包的应用程序 名称com.example.foo现在可以自由访问 Android / data / com.example.foo /在外部存储设备上没有 权限。这些合成的权限是通过 将原始存储设备包装在FUSE守护程序中。
摘自本页 - > https://source.android.com/devices/storage/index.html