java - 在 android 11 上将文件保存在 sd 卡上
问题描述
我想将照片保存在 Android 11 上 sd 卡上的外部应用程序目录中。这样做的正确方法是什么?我是否必须将 SAF API 与由操作 ACTION_OPEN_DOCUMENT_TREE 触发的系统选择器一起使用,其中用户必须选择 sd 卡上的文件夹?
或者也许我可以使用这种方法:
File[] externalStorageVolumes =ContextCompat.getExternalFilesDirs(mContext, null);
并假设如果 sd 卡可用,它将打开externalStorageVolumes[1]
?这适用于我的 2 台设备(带有 android 5 的三星 j1 和带有 Android 10 的三星 s10),但我没有机会访问更多设备来测试它。
解决方案
在 Android 11(API 级别 30)及更高版本上,应用无法在外部存储上创建自己的应用特定目录。
尝试媒体存储api
或针对旧的 android 10 并在清单中设置 requestLegacyExternalStorage=true
推荐阅读
- java - Java找不到信息
- c++ - 如何在 cupsEnumDests 中使用类方法?
- csv - Snowflake - 将大文件放入内部 Snowflake Stage
- python - 为什么我使用 for 循环从另一个字典创建的字典更小?
- python - 尝试使用 subprocess.run 运行 bash 命令但不成功
- java - Java流:迭代两个集合,链接响应
- c# - 正则表达式 - 匹配两个具有未知空格的特定单词
- delphi - Delphi - 有没有简单/快速的方法来获取调用者函数地址?
- ruby - 如何为一次性 rake 任务覆盖 ruby 中的方法?
- web-scraping - 使用 BeatufilSoup 进行数据抓取