【问题标题】:Lost access to DCIM/SUBDIR in Android 10在 Android 10 中无法访问 DCIM/SUBDIR
【发布时间】:2020-08-27 08:17:29
【问题描述】:

我的应用程序像相机一样将文件写入DCIM/SUBDIR。在 Android 10 之前它工作正常。现在它看不到这个目录的内容并产生

java.io.FileNotFoundException: /storage/emulated/0/DCIM/SUBDIR/myfile: open failed: EACCES (Permission denied)

如何克服?我不能让用户选择文件,因为我的工作流程就像在相机中一样:您没有在拍摄的每张照片上选择文件名。所以我可能不能使用Storage Access Framework

【问题讨论】:

  • 您可以使用 MediaStore 将文件写入 DCIM 的子目录。一旦用户选择了 DCIM 目录,SAF 也可以使用。
  • @blackapps 我从来没有为相机应用程序选择过DCIM 目录,我需要同样的。我正在从本机代码中写入文件,在这种情况下我可以使用MediaStore 吗?
  • 对不起,我不知道。你可以使用 SAF 吗?
  • 我不想打扰二手的。一推就走。

标签: android permission-denied android-10.0 storage-access-framework


【解决方案1】:

尝试在AndroidManifest.xml<application>标签中添加下面的键

<application android:requestLegacyExternalStorage="true"

Android 10 中的文件访问基于scoped storage 标准。

check this out

这仅适用于 Android 10。如果您将目标版本设置为 11,它将不起作用。Check this.

【讨论】:

  • 我也可以在 11 中修复吗?
  • 在 Android 11 中。我对此了解不多,但根据文档,您需要迁移,请参阅此链接:developer.android.com/preview/privacy/…
  • Can I fix in 11 too? 无需修复。然后该目录再次可用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2023-03-23
  • 2015-07-27
  • 2017-12-11
  • 2014-07-14
  • 1970-01-01
相关资源
最近更新 更多