android 11 中的 scopedStorage 功能是否有临时修复?

问题描述

我有一个使用 android 29 sdk 的应用程序,并且在 AndroidManifest.xml 中将 requestLegacyExternalStorage 标志设置为 true,同时计划从 android 10(API 29) 迁移到 11(API 30) 与文件 API 相关的问题很少用于在我的应用程序中创建目录/文件。我目前正在使用 File logFile = new File(Environment.getExternalStorageDirectory() + "/xyz/logs/abc.txt");,这会导致在 android 11 设备上运行我的应用程序时出现以下 logcat 错误

“找不到文件://xyz/logs/abc.txt”

由于 Android 11 使用 https://developer.android.com/training/data-storage#scoped-storage 机制处理外部存储。

尝试了以下方法:-

  1. 在 androidManifext.xml 中将 preserveLegacyExternalStorage 标志添加为 true 会导致构建失败。 <application android:preserveLegacyExternalStorage='true' ></application>https://developer.android.com/reference/android/R.attr#preserveLegacyExternalStorage

  2. 尝试在清单中使用 MANAGE_EXTERNAL_STORAGE,这严重违反了 Google Play 政策

在 Android 11 定位中是否有更好的方法来处理此问题 除了上述 API 30?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)