gpt4 book ai didi

android - 将 Android 11 中的文件保存到外部存储(SDK 30)

转载 作者:行者123 更新时间:2023-12-04 11:20:02 24 4
gpt4 key购买 nike

我正在 Android 11(SDK 版本 30)上编写一个新应用程序,但我根本找不到有关如何将文件保存到外部存储的示例。
我阅读了他们的文档,现在知道他们基本上忽略了 list 权限( READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE )。他们也忽略了android:requestLegacyExternalStorage="true"在 manifest.xml 应用程序标记中。
在他们的文档中 https://developer.android.com/about/versions/11/privacy/storage他们写道,您需要启用 DEFAULT_SCOPED_STORAGEFORCE_ENABLE_SCOPED_STORAGE在您的应用程序中启用范围存储的标志。
我必须在哪里启用这些?
当我这样做时,我如何以及何时获得写入外部存储的实际权限?有人可以提供工作代码吗?我想保存 .gif、.png 和 .mp3 文件。所以我不想给画廊写信。
提前致谢。

最佳答案

对应所有Api,包括Api 30、Android 11:

public static File commonDocumentDirPath(String FolderName)
{
File dir = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
{
dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/" + FolderName);
}
else
{
dir = new File(Environment.getExternalStorageDirectory() + "/" + FolderName);
}

// Make sure the path directory exists.
if (!dir.exists())
{
// Make it, if it doesn't exit
boolean success = dir.mkdirs();
if (!success)
{
dir = null;
}
}
return dir;
}
现在,使用这个 commonDocumentDirPath用于保存文件。
评论的旁注, getExternalStoragePublicDirectory具有某些范围的现在正在使用 Api 30、Android 11。干杯!感谢 CommonsWare 的提示。

关于android - 将 Android 11 中的文件保存到外部存储(SDK 30),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65637610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com