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

Android SAF get access to particular directory on SD Card

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

我了解了 SAF,但就我而言,这不是解决方案 - 存储在两个目录中的文件是使用本机库 (C++) 解析的 - 我需要它的路径,如 /storage/sdcard/example/test.xml。否则库无法读取此文件。不幸的是,由于缺少资源,我无法更改库。

我想请教三个问题:

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

Is there any other way to ask access to directory on SD Card and use this directory like the old way?

不,缺少构建自定义 ROM 或对设备进行 root 操作。

Maybe I can say Android - "hey, I want have Example directory on SD Card and maintain it"?

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

Or maybe I can use SAF without ContentResolver?

不,因为您无法获得文件系统路径。