You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native安卓升级API Level33后WRITE_EXTERNAL_STORAGE权限被拒求助

解决React Native升级Target API 33后WRITE_EXTERNAL_STORAGE权限被拒问题

1. 先搞懂API 33的权限变更

Android 13(对应API 33)彻底废弃了WRITE_EXTERNAL_STORAGE权限,把存储权限拆分成了媒体类型专属权限。现在不再通过这个旧权限申请存储读写,而是根据你操作的媒体类型,申请对应的细分权限。

2. 更新AndroidManifest.xml配置

  • 移除旧的WRITE_EXTERNAL_STORAGE权限,替换为API 33要求的媒体权限:
    <!-- 删掉这行旧权限 -->
    <!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> -->
    
    <!-- 根据你的业务需求添加对应权限,比如操作图片就加下面这个 -->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <!-- 操作视频加这个 -->
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
    <!-- 操作音频加这个 -->
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
    
  • 注意:API 33+下,写入媒体文件(比如保存图片到相册)不需要单独申请WRITE权限,直接通过MediaStore API写入即可,系统会自动授权。

3. 调整React Native的权限请求逻辑

如果你的代码里还在请求WRITE_EXTERNAL_STORAGE,要改成请求对应的媒体权限。以react-native-permissions库为例:

import { Platform } from 'react-native';
import { PERMISSIONS, request } from 'react-native-permissions';

// 根据Android版本动态选择要请求的权限
const getTargetPermission = () => {
  if (Platform.Version >= 33) {
    // API33+请求媒体权限,这里以图片为例
    return PERMISSIONS.ANDROID.READ_MEDIA_IMAGES;
  } else {
    // 低版本还是用旧权限
    return PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE;
  }
};

// 发起权限请求
const requestStoragePermission = async () => {
  const result = await request(getTargetPermission());
  // 处理权限结果
};

4. 兼容低版本Android

如果要同时支持API 32及以下设备,可以给旧权限加上版本限制:

<uses-permission 
  android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
  android:maxSdkVersion="32" />

这样低版本设备能正常使用旧权限,API 33+设备会自动忽略这行配置。

5. 检查第三方库的权限依赖

有些第三方库可能还在默认引入WRITE_EXTERNAL_STORAGE权限,导致冲突。可以在AndroidManifest.xml中强制移除重复权限:

<uses-permission 
  android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
  tools:node="remove" />

同时建议把第三方库更新到支持API 33的最新版本。

内容的提问来源于stack exchange,提问作者Robert S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:03:35