android 14及android15 READ_EXTERNAL_STORAGE跟相册,视频权限的适配

最近在做Android15的适配,发现WRITE_EXTERNAL_STORAGE跟READ_EXTERNAL_STORAGE无法使用了,被弃用了

  • 在android 13添加了外部细分权限,READ_MEDIA_IMAGES跟READ_MEDIA_VIDEO及 READ_MEDIA_AUDIO权限,而在应用内部的文件管理则不需要权限,直接可以进行操作。

在android 14又增加了READ_MEDIA_VISUAL_USER_SELECTED,如果你想要在android14上访问外部的照片跟视频,则需要这三个权限:READ_MEDIA_VISUAL_USER_SELECTED,READ_MEDIA_IMAGESREAD_MEDIA_VIDEO

所以最终做的适配:

判断权限的请求结果需要分4种情况,分别是:

Android 13及以上完整照片和视频访问权限

Android 14及以上部分照片和视频访问权限

Android 12及以下完整本地读写访问权限

java 复制代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
        permissionLauncher.launch(
            arrayOf(READ_MEDIA_IMAGES,
                READ_MEDIA_VIDEO,
                READ_MEDIA_VISUAL_USER_SELECTED)
        )
    } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU) {
        permissionLauncher.launch(arrayOf(READ_MEDIA_IMAGES, READ_MEDIA_VIDEO))
    } else {
        permissionLauncher.launch(arrayOf(READ_EXTERNAL_STORAGE))
    }
相关推荐
墨染天姬3 小时前
[V2X]音频数据流图
音视频
执明wa7 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder8 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农8 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户69371750013849 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端
GitLqr9 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
sg_knight9 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
爱笑鱼9 小时前
Binder(四):ioctl(BINDER_WRITE_READ) 之后,事务怎样到达目标进程?
android
AFinalStone9 小时前
Android 7系统休眠唤醒(二)开机全链路—BootROM到Launcher
android·电源管理·休眠唤醒