Android 14 媒体权限变化

允许部分访问照片和视频

在Android 14设备上与您的应用程序交互的用户现在可以在应用程序请求Android 13(API级别33)中引入的任何视觉媒体权限(READ_media_IMAGES或READ_media-VIDEO)时授予对其视觉媒体库(照片/视频)的部分访问权限。

新对话框包含以下选项:

选择照片和视频:Android 14中的新功能。用户选择他们希望提供给您的应用程序的特定照片和视频。

始终允许所有:用户授予对设备上所有照片和视频的完全库访问权限。

不允许:用户拒绝所有访问。

如果用户选择Select photos and videos(选择照片和视频),并且您的应用程序稍后再次请求READ_MEDIA_IMAGES或READ_MEDIA-VIDEO,系统将显示一个不同的对话框,让用户有机会访问其他照片和视频。

为了帮助应用程序支持新的更改,系统引入了新的权限READ_MEDIA_VISUAL_USER_SELECTED。

注意:如果您的应用程序已经使用了照片选择器,则无需采取任何措施来支持此更改。否则,请考虑使用照片选择器,而不是采用此更改。

声明新权限的效果

如果您声明READ_MEDIA_VISUAL_USER_SELECTED权限,并且用户在系统权限对话框中选择选择照片和视频,则会发生以下行为:

READ_MEDIA_IMAGES和READ_MEDIA-VIDEO权限均被拒绝。

授予READ_MEDIA_VISUAL_USER_SELECTED权限,提供对用户照片和视频的部分和临时访问。

如果您的应用程序需要访问其他照片和视频,则必须再次手动请求READ_MEDIA_IMAGES权限或READ_MEDIA-VIDEO权限(或两种权限)。

注意:在应用程序中创建一个UI元素,用户必须在重新请求READ_MEDIA_IMAGES或READ_MEDIA-VIDEO权限之前按下该元素。用户再次看到系统对话框应该不会感到惊讶。

请记住,READ_MEDIA_IMAGES和READ_MEDIA-VIDEO是访问用户照片和视频照片库所需的唯一其他权限。声明READ_MEDIA_VISUAL_USER_SELECTED使权限控制器知道您的应用程序支持手动重新请求以选择更多照片和视频。

未声明新权限的影响

如果未声明READ_MEDIA_VISUAL_USER_SELECTED权限,将发生以下行为:

在应用程序会话期间授予READ_MEDIA_IMAGES和READ_MEDIA-VIDEO权限,提供临时权限授予和对用户所选照片和视频的临时访问。当你的应用移动到后台,或者当用户主动关闭你的应用时,系统最终会拒绝这些权限。此行为与其他一次性权限一样。

如果您的应用程序稍后需要访问其他照片和视频,则必须再次手动请求READ_MEDIA_IMAGES权限或READ_MEDIA-VIDEO权限。系统遵循与初始许可请求相同的流程,提示用户选择照片和视频。

注意:如果您的应用程序遵循权限最佳实践,则此更改不会影响您的应用。特别是,您的应用程序不应该假设保留了URI访问,并且您应该在权限更改后刷新显示的图像集。

设备升级时保留照片和视频访问

如果你的应用程序安装在从早期Android版本升级到Android 14的设备上,系统将保持对用户照片和视频的完全访问,并自动授予你的应用一些权限。确切的行为取决于设备升级到Android 14之前授予应用程序的权限集。

注意:用户、设备公司策略或权限自动重置仍可能手动拒绝权限授予。始终检查权限,而不是假定以前已授予的状态。

Android 13的权限

考虑以下情况:

您的应用程序安装在运行Android 13的设备上。

用户已向您的应用程序授予READ_MEDIA_IMAGES权限和READ_MEDIA-VIDEO权限。

然后,当您的应用程序仍然安装时,设备升级到Android 14。

在这种情况下,您的应用程序仍然可以完全访问用户的照片和视频。系统还会自动保留授予应用程序的READ_MEDIA_IMAGES和READ_MEDIA-VIDEO权限。

Android 12及更低版本的权限

考虑以下情况:

您的应用程序安装在运行Android 13的设备上。

用户已向您的应用程序授予READ_EXTERNAL_STORAGE权限或WRITE_EEXTERNAL_STRAGE权限。

然后,当您的应用程序仍然安装时,设备升级到Android 14。

在这种情况下,您的应用程序仍然可以完全访问用户的照片和视频。系统还会自动向您的应用程序授予READ_MEDIA_IMAGES权限和READ_MEDIA-VIDEO权限。

根据Android 14中引入的更改,您的应用程序可能只能部分访问设备的照片库。如果应用程序在使用ContentResolver查询时正在缓存MediaStore数据,则缓存可能不是最新的。

始终使用ContentResolver查询MediaStore,而不是依赖存储的缓存。

当应用程序处于前台时,将结果保存在内存中。

将URI访问视为临时访问

如果用户在系统权限对话框中选择“选择照片和视频”,则您的应用程序对所选照片和视频的访问权限最终将过期。您的应用程序应始终处理无法访问任何Uri的情况,无论其权限如何。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 11引入了一些关于默认读写权限的重大变化,以增强应用程序的安全性和用户的隐私保护。以下是Android 11中默认读写权限的一些重要变化: 1. 外部存储访问限制:在Android 11中,应用无法默认访问外部存储(如SD卡)上的任何文件。相反,应用需要通过使用新的媒体存储框架来请求访问这些文件。用户需要明确授予对文件的访问权限。这限制了恶意应用程序对用户存储中的敏感数据的访问。 2. Scoped Storage(范围存储):Android 11引入了Scoped Storage机制,它为应用提供了针对外部存储的更安全和更有序的访问方式。每个应用都有一个专用的目录,只能在该目录下访问自己的文件。其他应用无法访问此目录中的文件,这增强了用户数据的隐私保护。 3. 存储访问框架的变化Android 11引入了新的媒体存储访问框架,允许应用通过ContentResolver API请求访问外部存储上的媒体文件(如照片和音乐)。应用程序需要明确请求用户访问这些文件的权限,并使用新的API来执行文件操作。 4. 设备和管理策略的限制:Android 11对某些设备和管理策略有了一些限制。例如,设备政策可以限制应用程序在外部存储上读取或写入文件的权限,并在设备上的目录中进行更严格的控制。 总而言之,Android 11使读写权限更加严格,通过引入Scoped Storage等机制来保护用户数据的隐私和安全。应用程序需要经过明确的用户授权来访问外部存储上的文件,并使用新的媒体存储访问框架来执行文件操作。这些变化提高了用户数据的安全性和隐私保护水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值