将 android 系统从 10 更新到 11 时 isExternalStorageLegacy 为 false
Posted
技术标签:
【中文标题】将 android 系统从 10 更新到 11 时 isExternalStorageLegacy 为 false【英文标题】:isExternalStorageLegacy is false when update android system from 10 to 11 【发布时间】:2021-12-22 00:36:46 【问题描述】:在我的项目清单文件中
android:preserveLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
我们有一个范围存储的迁移方案。我们在 android 10 上使用旧版存储,但我们希望在版本更新到 11 时进行迁移。
我们已在 android 10 设备上安装应用程序。后来我们更新到安卓系统11。
当我们启动应用程序Environment.isExternalStorageLegacy()
返回假
android:preserveLegacyExternalStorage 为 true 但返回 false 。你有什么理由吗?
【问题讨论】:
【参考方案1】:因为 Android 11 不接受旧版存储,如下所示。系统忽略您的android:requestLegacyExternalStorage="true"
字段。
注意:将应用更新为面向 Android 11(API 级别 30)、系统忽略requestLegacyExternalStorage属性 当您的应用在 Android 11 设备上运行时,您的应用必须 准备好支持范围存储并为用户迁移应用数据 那些设备。 Android Data Storage
【讨论】:
我知道这一点,但我需要将我的文件迁移到范围存储,并且我已经阅读了 android:preserveLegacyExternalStorage 这个标志在 android 11 上激活 legacyStorage。我尝试了 2 个案例;第一种情况我已经在 android 11 上安装了我的应用程序(目标 10),然后我将其升级到新的 apk(目标 11 带有保留标志)并且 legacystorage 处于活动状态。但在第二种情况下,我稍后在 android 10 设备上安装了我的应用程序(目标 10)我升级了新版本(目标 11 的应用程序)然后我将系统更新到 11 我需要迁移我的文件但保存器标志不影响以上是关于将 android 系统从 10 更新到 11 时 isExternalStorageLegacy 为 false的主要内容,如果未能解决你的问题,请参考以下文章
从 3.6 更新到 Android Studio 4.0 后构建具有 NDK 支持的项目时出错
将项目更新到 android 10 后 onCreate 活动崩溃