而这个行为在 Android 11 上就会发生改变。正如不满该特性的测试人员在该问题的追踪页面上所反馈的,在用户授予权限之后,虽然安装对话框依然会弹出,但是该应用本身却消失了。
当你重新打开应用程序的时候,你就会发现整个 APP 被重新加载,这就意味着此前输入的内容或者其他尚未缓存的数据就会丢失。而 Android 通常只有在撤销权限的时候才会强行退出应用程序以阻止应用被破解,而不是在授予权限的时候强行退出。
在问题追踪器上,谷歌工程师并没有太过重视这个问题。最初的评论中只是写道:“这实际上是按照预期的工作方式进行”。直到有更多开发者反馈这个问题之后,谷歌才明确这个新特性是实际上和强制分区存储(Scoped Storage)有关。
在 Android R 中,文件系统和存储挂载的设置方式发生了很大变化。当一个应用程序在没有这个权限的情况下启动时,它将获得一个不允许写入某些目录(例如 Android/obb 的文件系统视图。一旦应用被授予了这个权限,这个视图就不再准确,需要更新为允许应用写入某些目录的视图。
以 Android R 文件系统现有的设置方式,不可能马上改变这个视图。正如评论#16中提到的,我们正在内部评估。我只是提供了一些额外的细节,说明为什么这和 Android Q 上的方式不一样。
虽然 Scoped Storage 将有利于安全和隐私,但新系统显然会带来比预期的更大的变化。希望谷歌能想出一个不需要强行退出应用程序改变其读写权限的解决方案。
稿源:cnBeta、Android Polic