Xamarin Android写入SD卡共享存储

fumotvh3  于 2023-03-16  发布在  Android
关注(0)|答案(2)|浏览(184)

我想实现的功能,允许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卡上的非应用程序特定的文件夹或访问创建它的应用程序之外的应用程序特定的文件夹?

daupos2t

daupos2t1#

标准现在使用SAF。
存储访问框架。
让用户通过ACTION_OPEN_DOCUMENT_TREE选择可移动微型SD卡。
之后,您可以在其上创建文件,直到满。

flvlnr44

flvlnr442#

你可以使用这个代码来使用户访问sd卡。

startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE), requestCode);

下面是您可以参考Android M write to SD Card的答案。
有关授予对目录内容的访问权限的详细信息,请查看本文

相关问题