我想实现允许 Android 用户将文件写入其设备 SD 卡并能够将该 SD 卡弹出到不同设备并从新设备访问文件的功能 - 以防他们的原始设备损坏和不再可用。
我可以写入 SD 卡,得到这样的路径:
Java.IO.File[] externalFilesDirs = Android.App.Application.Context.GetExternalFilesDirs(null);
if (externalFilesDirs.Any())
{
string externalSdPath = externalFilesDirs.Length > 1 ? externalFilesDirs[1].AbsolutePath : externalFilesDirs[0].AbsolutePath;
}
但是,这会将文件存储在我无法从另一个应用程序或不同设备上的同一应用程序访问的应用程序特定文件夹中。
我的目标是 Android 11,我知道分区存储现在是标准配置,但是有什么方法可以写入 SD 卡上的非应用程序特定文件夹或访问创建它的应用程序之外的应用程序特定文件夹
标准现在使用SAF。
存储访问框架。
让用户使用 ACTION_OPEN_DOCUMENT_TREE 选择可移动的 micro sd 卡。
之后你可以在上面创建文件直到满为止。