uniapp 自动加了 android.permission.read_media_images 是怎么回事?
我在使用uniapp开发应用时,发现打包后的AndroidManifest.xml中自动添加了android.permission.read_media_images权限,但我并没有在manifest.json中配置这个权限。请问这是什么原因导致的?是uniapp某个模块默认添加的吗?该如何移除这个不需要的权限?
2 回复
uniapp 自动添加 android.permission.read_media_images 权限是因为新版本适配了 Android 13 的媒体权限变更。该权限允许应用读取设备上的图片文件,确保相册选择等功能正常使用。这是框架为兼容性自动处理的,无需手动干预。
在 UniApp 项目中自动添加 android.permission.READ_MEDIA_IMAGES 权限,通常是以下原因导致的:
1. UniApp 框架或插件自动引入
- HBuilderX 或 CLI 工具:某些版本的构建工具可能自动注入该权限,以支持图片相关功能(如相册访问、图片上传)。
- 第三方插件:如果项目使用了与图片处理、相册选择等相关的原生插件(如
uni-choose-image),插件可能依赖此权限,构建时会自动添加到配置中。
2. Android 系统权限要求(Android 13+)
- 从 Android 13(API 33) 开始,Google 用更细粒度的
READ_MEDIA_IMAGES权限替代了旧的READ_EXTERNAL_STORAGE权限,用于访问用户媒体库中的图片。 - 如果项目的
targetSdkVersion设置为 33 或更高,且代码中涉及图片读取功能,UniApp 可能会自动适配并添加此权限。
如何检查或修改?
-
查看 manifest.json 文件
检查是否显式配置了该权限。例如:{ "permissions": [ "android.permission.READ_MEDIA_IMAGES" ] }如果未主动添加,可能是插件或构建工具自动注入。
-
检查 AndroidManifest.xml
通过 HBuilderX 打包后,在/platforms/android/app/src/main/AndroidManifest.xml中搜索该权限,确认其来源。 -
移除不必要的权限
- 如果不需要图片读取功能,可在
manifest.json中配置排除:{ "permissions": [ "!android.permission.READ_MEDIA_IMAGES" ] } - 注意:移除后可能导致依赖此权限的功能(如选择图片)异常。
- 如果不需要图片读取功能,可在
建议
- 兼容性处理:若应用需在 Android 13+ 设备上正常运行,建议保留此权限,并确保动态权限申请逻辑正确(UniApp 的
uni.authorize或uni.requestPermissions)。 - 排查插件:检查使用的原生插件文档,确认其权限要求。
根据实际需求调整权限配置即可。

