关于如果使用外部存储,无法在 1.17.30.20 Beta 中加载或创建任何世界

修改于2021/08/08369 浏览公告更新
To Android players:
安卓玩家:
1.You don't have to understand the content below the horizontal ruler, but I'm also glad if you understand.
1.下面的内容你不必看懂,但如果你懂我也很高兴。
2.A file migration might happen on your Android device later if your "File Storage Location" is "External".
2.如果您的“文件存储位置”为“外部”,则稍后可能会在您的 Android 设备上进行文件迁移。
3.Pay attention to the official announcement about this incoming migration. You might be advised to backup something.
3.请注意有关此传入迁移的官方公告。可能会建议您备份某些内容。
4.If beta on your Android 11 device is not working properly anymore, backup your files and set "File Storage Location" to "Application" temporarily. If beta seems still working correctly on your Android 11 device, don't re-install your beta version of Minecraft.
4.如果您的 Android 11 设备上的测试版不再正常工作,请备份您的文件并将“文件存储位置”暂时设置为“应用程序”。如果 Beta 版在您的 Android 11 设备上似乎仍能正常运行,请不要重新安装您的 Beta 版 Minecraft。
Google Play's target API level requirement
Google Play 的目标 API 级别要求
Starting in November 2021, app updates will be required to target API level 30 or above and adjust for behavioral changes in Android 11.
从 2021 年 11 月开始,应用更新将需要针对 API 级别 30 或更高级别,并根据 Android 11 中的行为变化进行调整。
I know this isn't a typical bug. This is a privacy issue, and I will give my suggestion about it. Considering this suggestion will be outdated after November, I've decided to post it here.
我知道这不是典型的错误。这是一个隐私问题,我会就此提出我的建议。考虑到此建议将在 11 月之后过时,我决定将其发布在这里。
Not that all of players on the Feedback website know about app development. I don't expect players to vote for a suggestion they don‘t even understand.
并非所有反馈网站上的玩家都了解应用程序开发。我不希望玩家投票支持他们甚至不理解的建议。
Without enough votes, it's impossible for this suggestion to be watched by the developers before November.
没有足够的票数,这个建议不可能在 11 月之前被开发者看到。
The Play Store is starting to require app updates to target Android 11 in November.
Play 商店在 11 月开始要求应用更新以针对 Android 11。
Starting in November, updates of Minecraft have to target API level 30 or the Play Store will not accept.
从 11 月开始,Minecraft 的更新必须以 API 级别 30 为目标,否则 Play 商店将不接受。
To readers don't know about API level: If apps target to a new API level, they have to behave as if they are installed on the correct Android version, regardless of the current Android version the user is using.
对于不了解 API 级别的读者:如果应用程序面向新的 API 级别,则它们必须表现得就像安装在正确的 Android 版本上一样,而不管用户当前使用的 Android 版本如何。
Android 11 的行为更改包括范围存储强制。Android 11 中的存储更新
Scoped storage enforcement
范围存储强制执行
Access into external storage directories is limited to an app-specific directory.
访问外部存储目录仅限于特定于应用程序的目录。
Obviously, the directory "/sdcard/games" that Minecraft uses when "File Storage Location" is "External" is beyond the app-specific directory of Minecraft. Minecraft that targets API level 30 is losing the permissions for that directory, which could result in disappearance of currently imported worlds, resource packs and behavior packs and disability to create any world, which has happened in 1.17.30.20 Beta on my Android 11 device!
显然,当“文件存储位置”为“外部”时,Minecraft 使用的目录“/sdcard/games”超出了 Minecraft 特定于应用程序的目录。以 API 级别 30 为目标的 Minecraft 正在失去该目录的权限,这可能导致当前导入的世界、资源包和行为包消失,并且无法创建任何世界,这在我的 Android 11 设备上的 1.17.30.20 Beta 中发生过!
Of course, apps that target API level 30 can still ask for read and write permissions for any specific directory using the SAF Picker. However, on various modified Android OSs, the Picker doesn't always work. For example, on MIUI, the Picker doesn't have full privileges, which is different from other AOSP based OSs. There are many other disadvantages, but I don't want to go into details.
当然,面向 API 级别 30 的应用程序仍然可以使用 SAF Picker 请求对任何特定目录的读写权限。但是,在各种经过修改的 Android 操作系统上,选择器并不总是有效。例如,在 MIUI 上,Picker 没有完全权限,这与其他基于 AOSP 的操作系统不同。还有很多其他的缺点,但我不想详细介绍。
Minecraft on Android is supposed to migrate files to a new directory inside of "/sdcard/Android/data/com.mojang.minecraftpe"(the correct directory for "external files" on Android 11). With android:preserveLegacyExternalStorage="true", Minecraft will get the temporary permission for the file migration.
Android 上的 Minecraft 应该将文件迁移到“/sdcard/Android/data/com.mojang.minecraftpe”(Android 11 上“外部文件”的正确目录)内的新目录。使用android:preserveLegacyExternalStorage="true",Minecraft 将获得文件迁移的临时权限。
Note that the destination is private on Android 11. Files will be migrated from a public directory to a private directory. It will be a bit difficult for players to access their worlds, resource packs and behavior packs in the filesystem directly after the migration.
请注意,目标在 Android 11 上是私有的。文件将从公共目录迁移到私有目录。玩家在迁移后直接访问文件系统中的世界、资源包和行为包会有点困难。
1.Have migration tested in beta before adding it into release.
1.在将迁移添加到发布中之前,先在 Beta 版中测试迁移。
2.Inform Android players of the full details of the incoming migration as soon.
2.尽快将传入迁移的完整详细信息通知 Android 玩家。
The old directory is "/sdcard/games/com.mojang". Minecraft is supposed to migrate the "com.mojang" folder only, because there could be other app(s) still using the "games" folder. Only when the folder is empty, Minecraft will be supposed to delete it.
3.旧目录是“/sdcard/games/com.mojang”。Minecraft 应该只迁移“com.mojang”文件夹,因为可能还有其他应用程序仍在使用“games”文件夹。只有当文件夹为空时,Minecraft 才会删除它。
Considering the new directory is private, an "Export World" button should be offered to players, and add-on developers affected need new FAQs.
4.考虑到新目录是私有的,应该向玩家提供“导出世界”按钮,受影响的附加开发人员需要新的常见问题解答。
3
2