Android SAF可以访问SD卡上的特定目录

时间:2017-02-01 13:53:30

标签: java android android-sdcard android-storage

我还在搜索,但也许有人面临同样的问题。 我正在维护一个应用程序。这个应用程序将一些数据存储在两个地方(比如sdcard / example和external_memory / example)。在迁移到最新的Android Api之前,使用ExternalStorage.getAllExternalStoragePaths()一切正常。现在我仍然能够获得两个路径,但sdcard / example路径不可读且不可写。

我读到了SAF,但在我的情况下,这不是一个解决方案 - 存储在两个目录中的文件都使用本机库(C ++)进行解析 - 我需要像/storage/sdcard/example/test.xml那样的路径。否则库无法读取此文件。不幸的是,由于缺少来源,我无法更改库。

我想问三个问题:

  • 有没有其他方法可以访问SD卡上的目录并像旧方式一样使用此目录?
  • 也许我可以说Android - "嘿,我想在SD卡上有示例目录并维护它"?
  • 或者我可以在没有ContentResolver的情况下使用SAF吗?

利益相关方无法接受将文件移至/storage/sdcard/Android/data/com.example/files/

1 个答案:

答案 0 :(得分:1)

  

还有其他方法要求访问SD卡上的目录并像旧方式一样使用此目录吗?

不,没有构建自定义ROM或生根设备。

  

也许我可以说Android - "嘿,我想在SD卡上安装示例目录并维护它"?

没有。最接近的是getExternalFilesDirs()getExternalCacheDirs()getExternalMediaDirs()。如果那些返回2个以上的项目,则第二个和后续的项目将在可移动媒体上,您可以读取和写入这些路径。但是,您无法控制路径。

  

或者我可以在没有ContentResolver的情况下使用SAF吗?

不,只要你无法获得文件系统路径。