Android 14 媒体权限变化

这篇具有很好参考价值的文章主要介绍了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的情况,无论其权限如何。文章来源地址https://www.toymoban.com/news/detail-450768.html

到了这里,关于Android 14 媒体权限变化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 彻底解决Flask报错OSError[WinError 10013]以一种访问权限不允许的方式做了一个访问套接字的尝试

    这个报错在大家做Flask开发的过程中想必是最经常出现的一个问题,主要原因是Flask默认启用的是5000端口,而5000端口经常会被其他进程占用,造成端口冲突,Flask就会报错OSError:[WinError 10013]以一种访问权限不允许的方式做了一个访问套接字的尝试,如下图所示: 那么解决这个

    2024年01月25日
    浏览(39)
  • Android Studio 如何设置允许访问网络资源

    目录 前言 一、设置 二、更多资源         在 Android 应用中,有时需要访问网络资源,例如从服务器获取数据或者下载文件等。为了保证应用能够正常访问网络资源,需要在 AndroidManifest.xml 文件中添加网络权限。同时,在 Android 9.0 及以上版本中,还需要在代码中进行额外

    2024年02月03日
    浏览(28)
  • Android权限列表(基于Android 14)

    权限的目的为了保护用户隐私,应用在访问一些敏感数据时,必须事先取得用户授权后才能使用,比如:比如读取sdcard、访问通讯录等。 在Android6.0之前的设备上,系统不会提醒用户正在获取的权限。一旦安装应用,就意味着该应用所需的所有权限均已经得到授权。在这种情

    2024年02月16日
    浏览(27)
  • Android 14 新 API:直接监听截屏操作,不用再观察媒体文件了~

    截屏可以说是手机设备最常用的功能了,Android 系统非常重视截屏方面的体验,近几年的更新都不忘去优化这方面的体验。 从一开始仅在通知栏提醒已截屏,到 Android 11 支持在左下角生成截屏缩略图供编辑或分享,再到 Android 12 支持滚动截屏,以及这次的 Android 14 允许 App 直

    2023年04月15日
    浏览(30)
  • android开发在android13中存储权限发生变化,READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE无法使用

    原来的两个存储权限在android13中已经无法使用 在android13中读取图片需要以下权限: 视频权限: 音频权限: 如果需要访问pdf,word等其他类型文件,请使用以下权限:

    2024年02月01日
    浏览(29)
  • android11 申请所有文件访问权限

    Android 11 引入了强制执行分区存储的限制,导致应用默认不能访问外部文件。 针对以前涉及较多文件的操作,可采用申请所有文件访问权限的方式来解决这一问题,实现方式如下。 (虽然这样做安全性低,官方并不推荐这样,但确实最快适配原有应用程序的方式) 1. Android

    2024年02月04日
    浏览(30)
  • android 11后文件读写访问权限申请

    android 11后对文件读写访问权限管理 与 android 10又有了新的要求,导致在读写或者访问时出现error:java.io.FileNotFoundException: /storage/emulated/0/file_path open failed: EACCES (Permission denied),以下为android 11文件管理权限申请办法 回忆android 10 文件访问权限申请 step 1: AndroidManifest中添加权限申

    2024年02月05日
    浏览(33)
  • Android 5.0 ~ 14访问Android/data(obb)目录的方法

    众所周知,安卓每次出新版本的时候都会收紧权限,存储权限也不例外。虽说官方的意思是为了保护隐私安全,但这些改动着实令开发者和用户感到头疼,尤其是Android/data、Android/obb目录的访问。毕竟用户更难操作,开发者也要费力适配。那么今天就来探索下怎么适配这些变

    2024年03月24日
    浏览(39)
  • Android9.0及以上版本,开启Http的访问权限

    前言: 在android 9.0及以上版本中,cleartextTrafficPermitted默认设置为false阻止了从应用程序发送的任何http请求,官方说明:行为变更:以 API 级别 28 及更高级别为目标的应用  |  Android 开发者  |  Android Developers 1.在res新增xml文件:network_security_config.xml,内容如下: 全部: 过滤:

    2024年02月13日
    浏览(35)
  • Android文件基本操作(创建文件(夹)、复制文件(夹)、设置文件访问权限)

    将src目录下的info.txt复制到dst目录并重命名为info_dst.txt 1、 方法一:调用java.nio.file.Files.copy() 2、方法二:使用输入输出流 1、删除文件 只需要调用File的delete方法即可删除指定文件 2、删除文件夹 如果文件夹不为空,调用delete方法是无法删除文件夹的。需要先删除文件夹中包含

    2024年02月01日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包