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))
    }
相关推荐
z***67771 天前
SpringBoot(7)-Swagger
android·前端·后端
apigfly1 天前
如何通过 Android 消息机制实现 Looper 的性能监控
android·性能优化·app
雨白1 天前
Jetpack Compose 实战:复刻 Material 3 圆形波浪进度条
android·android jetpack
q***23921 天前
MySQL JSON数据类型全解析(JSON datatype and functions)
android·mysql·json
weixin_446260851 天前
Windows 安装原生安卓 App!无需模拟器,秒装谷歌商店!
android
fruge1 天前
移动端 H5 兼容问题合集:iOS 与 Android 的差异化处理
android·ios
2501_915909061 天前
iOS 上架需要什么东西?一次从准备清单到实操流程的完整技术拆解
android·macos·ios·小程序·uni-app·cocoa·iphone
txp玩Linux1 天前
rk3568上解析webrtc音频降噪算法处理流程
算法·音视频·webrtc
成都大菠萝1 天前
Android层级分布
android
浅笑离愁12341 天前
VI视频输入模块学习
linux·音视频