2

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

我阅读了有关 SAF 的信息,但在我的情况下,这不是一个解决方案——存储在两个目录中的文件都是使用本机库(C++)解析的——我需要它的路径,比如/storage/sdcard/example/test.xml. 否则库无法读取此文件。不幸的是,由于缺少资源,我无法更改库。

我想问三个问题:

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

/storage/sdcard/Android/data/com.example/files/利益相关者不接受将文件移动到其中。

4

1 回答 1

2

有没有其他方法可以要求访问 SD 卡上的目录并像旧方式一样使用该目录?

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

也许我可以说 Android -“嘿,我想在 SD 卡上有 Example 目录并维护它”?

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

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

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

于 2017-02-01T13:59:28.100 回答