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

Android 13应用中替代WRITE_EXTERNAL_STORAGE的权限是什么?

Android 13 图片选择器权限替代方案

核心结论

在Android 13(API 33)及以上设备上,WRITE_EXTERNAL_STORAGE 已被废弃,针对图片选择器(读取系统相册图片)的场景,无需申请写入权限,直接使用细分媒体权限 READ_MEDIA_IMAGES 替代即可。

权限适配逻辑

  • Android 13+(API 33):使用 READ_MEDIA_IMAGES,仅针对图片媒体的读取权限,完全覆盖图片选择器的需求。
  • Android 12及以下:仍可保留原有的 WRITE_EXTERNAL_STORAGE 或 READ_EXTERNAL_STORAGE 做兼容。

针对 react-native-image-crop-picker 代码修改

将原代码中硬编码的权限列表替换为版本适配的逻辑:

@ReactMethod
public void openPicker(final ReadableMap options, final Promise promise) {
    final Activity activity = getCurrentActivity();

    if (activity == null) {
        promise.reject(E_ACTIVITY_DOES_NOT_EXIST, "Activity doesn't exist");
        return;
    }

    setConfiguration(options);
    resultCollector.setup(promise, multiple);
    initiatePicker(activity);
    
    // 替换权限检查逻辑,适配Android版本
    List<String> permissions;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
        permissions = Collections.singletonList(Manifest.permission.READ_MEDIA_IMAGES);
    } else {
        permissions = Collections.singletonList(Manifest.permission.WRITE_EXTERNAL_STORAGE);
    }
    
    permissionsCheck(activity, promise, permissions, new Callable<Void>() {
        @Override
        public Void call() {
            return null;
        }
    });
}

额外建议

如果不想手动修改源码,直接升级 react-native-image-crop-picker 到最新稳定版本,官方已经完成了Android 13的权限适配,无需自行调整权限逻辑。

内容的提问来源于stack exchange,提问作者Mona Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:50:31