【发布时间】:2021-04-10 00:33:16
【问题描述】:
我想创建一个 zip 文件并将其保存到外部存储中。任何外部文件夹都可以。旧方法是使用Environment.getExternalStorageDirectory(),但已被弃用。它在 API 30 上引发异常。新方法是使用 MediaStore.Downloads.EXTERNAL_CONTENT_URI,但这仅在 API 29 之后可用。所以基本上我需要使用 if 语句编写代码两次,如果我希望我的应用程序在所有 API 级别上工作:
if (Build.VERSION.SDK_INT >= 29) {
// Do it the new way.
} else {
// Do it the old way.
}
有没有更好的办法?
【问题讨论】:
-
It throws exception on API 30不,不是全部。它提供了一个很好的 File 实例,就像以前一样。 -
我得到了
java.io.IOException: Operation not permitted,即使应用程序有WRITE_EXTERNAL_STORAGE运行时权限。我做错了什么? -
我们不知道你做了什么。但是调用 getExternalStorageDirectory() 不会抛出异常。
-
您找到解决方案了吗?
标签: android mediastore android-storage