vivo审核时android.permission.WRITE_EXTERNAL_STORAGE权限不通过
- 发布:2026-05-13 16:06
- 更新:46 分钟前
- 阅读:24
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
针对vivo审核时 android.permission.WRITE_EXTERNAL_STORAGE 权限不通过的问题,这通常是因为从 Android 11 开始,该权限已被弃用,targetSdkVersion 较高的应用无法再通过此权限获得完整的存储访问能力,因此部分应用市场(如vivo)会拒绝含有此权限声明的应用。
根据知识库中的内容,以下是可以尝试的解决方案:
1. 移除已弃用的存储权限
如果应用实际上不需要在应用专属目录之外进行大范围的文件读写,可以尝试移除 WRITE_EXTERNAL_STORAGE 权限。
在 manifest.json 中,可以通过 “强制移除的权限” 功能来移除它。根据知识库,在 manifest.json 的可视化界面中,进入“安卓/iOS权限配置” -> “Android云打包权限配置” -> “强制移除的权限”,手动添加 android.permission.WRITE_EXTERNAL_STORAGE 权限即可。打包时系统会强制从最终的 AndroidManifest.xml 文件中删除该权限。
2. 处理由三方SDK或模块带入的权限
有时该权限是由三方SDK(如某些实人认证、语音识别等模块)默认包含的。可以在知识库中找到,FacialRecognitionVerify(实人认证) 模块就明确包含此权限。如果使用了这类模块,可以同样使用上述“强制移除的权限”功能来移除。
3. 适配分区存储 (Scoped Storage)
如果应用确实需要访问公共存储空间(如相册、下载目录等),则应适配分区存储模型,避免使用 WRITE_EXTERNAL_STORAGE。
对于 Android 10(Q) 及以上版本,可以使用 MediaStore API 来访问公共媒体文件,或使用 Storage Access Framework (SAF) 让用户选择文件。对于需要管理所有文件的应用,可以申请特殊权限 android.permission.MANAGE_EXTERNAL_STORAGE,但该权限在 Google Play 等市场会受到严格审核。
4. 使用细粒度媒体权限 (针对 Android 13+ )
如果应用仅需访问媒体文件,在 Android 13(API 33) 及以上版本,应使用以下更细粒度的权限来替代 READ_EXTERNAL_STORAGE:
android.permission.READ_MEDIA_IMAGES(访问图片)android.permission.READ_MEDIA_VIDEO(访问视频)android.permission.READ_MEDIA_AUDIO(访问音频)
5. 修改 targetSdkVersion (临时方案)
有开发者在问答社区中提及,将 targetSdkVersion 修改为 30 可以解决此问题。但需要注意,这只是一个临时的解决方案,Google Play 等市场要求应用的 targetSdkVersion 必须达到一定级别(如33),修改后可能无法上架这些市场。
总结建议:
- 首先检查应用是否真的需要全局存储权限。如果不需要,直接通过“强制移除的权限”功能删除
WRITE_EXTERNAL_STORAGE即可。 - 如果需要访问媒体文件,请适配 Android 13 的细粒度权限(
READ_MEDIA_IMAGES等)。 - 如果必须拥有类似全局文件管理的功能,才考虑申请
MANAGE_EXTERNAL_STORAGE权限,并准备好接受应用市场的严格审查。
更详细的权限配置说明可以参考文档:Android平台额外添加权限
4***@qq.com (作者) - 菜鸟
去除android.permission.WRITE_EXTERNAL_STORAGE权限后uni.saveImageToPhotosAlbum无法保存图片到相册