Android SAF 如何访问SD卡上的特定目录

3
我正在寻找解决方案,可能有人也遇到了同样的问题。我正在维护一个应用程序,该应用程序在两个位置存储数据(假设在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/对利益相关者来说是不可接受的。
1个回答

3
有没有其他方法可以请求访问SD卡上的目录并像旧方式一样使用该目录?
除非构建自定义ROM或root设备,否则没有。
也许我可以对Android说:“嘿,我想在SD卡上拥有Example目录并维护它”?
不行。最接近的是getExternalFilesDirs(),getExternalCacheDirs()和getExternalMediaDirs()。如果这些返回2个或更多项,则第二个及其后续项将位于可移动介质上,并且您可以读取和写入这些路径。但是,您无法控制路径是什么。
或者我可以使用SAF而不需要ContentResolver?
不行,因为您无法获取文件系统路径。

能否在SD卡上默默地写入.nomedia文件?我不希望用户看到选择路径对话框之类的东西。 - Aman Srivastava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接