如何解决升级到 targetSdkVersion 30,苦苦挣扎于作用域存储实现
我接手了一个用 Java 编写的过时的 Android 应用
在我将 targetSdkVersion 从 27 更改为 30 之前,我已经逐步升级了依赖项,没有出现问题。
这是针对以下功能的:
- 允许用户从图库中选择或从相机拍摄
- 将值保存到应用程序文件夹
- 将图片发送到 API
我知道在 Android 10 之前的版本中,我可以在清单文件中添加 android:requestLegacyExternalStorage="true"
并且它会起作用,但该功能来自 Android 10+。
如果我降级 targetSdkVersion,它就可以工作。
否则会抛出以下错误:
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/xxxxx/1380402_672833029402941_703996746_n.jpg: open failed: EACCES (Permission denied)
,我已将范围缩小到权限问题
我理解它背后的概念,但我无法让它发挥作用。
我需要做什么才能在 Java 代码中解决这个问题,因为我不知道如何在 Kotlin for Java 中应用示例?
我尝试遵循以下一些答案:
示例应用:https://github.com/tinonetic/android-questions-scoped-storages
- Write permissions not working - scoped storage Android SDK 30 (aka Android 11)
- Scoped Storage android 10.0
- Add image to Media Gallery - Android
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。