在Android 14上有一个新的存储访问权限, 根据文档: https://developer.android.com/reference/android/Manifest.permission#READ_MEDIA_VISUAL_USER_SELECTED
如果应用程序请求 READ_MEDIA_IMAGES、READ_MEDIA_VIDEO 或 ACCESS_MEDIA_LOCATION,无论目标 SDK 是什么,此权限都会自动添加到应用程序的清单中。
我在我的应用程序上对此进行了测试,目标 SDK 是 33,在我的清单中使用 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO。
在 Pixel 5、Android 14、安全补丁级别:2023 年 10 月 5 日,我的应用程序获得了新的权限。
我更新了设备,Android 14,安全补丁级别:2023 年 11 月 5 日,新的权限消失了,现在就像 Android 13 上的一样。在恢复出厂设置后也进行了测试。
在 Samsung Galaxy S23 Ultra 上,安全补丁级别:2023 年 10 月 1 日我根本不会自动获得新权限。
Google 是否一开始就在没有目标 SDK 的情况下向所有人添加了此更改,然后看到它会给尚不支持它的应用程序带来多少问题,并在不更新文档的情况下将其回滚?
现在在 Android 14 上请求存储访问时非常不一致。
访问特定图像和视频的 Android 14 存储权限不会自动添加到清单中。
Google 似乎已经更改了这种处理方式:目标 api 低于 34 的应用程序必须在其清单中添加 READ_MEDIA_VISUAL_USER_SELECTED。 在这里结账:https://issuetracker.google.com/issues/310770781#comment10