Android 13(API 33)读写SD卡权限的调整适配

在Android13前读取SDcard 的内容只需要一个权限:

1
android.permission.READ_EXTERNAL_STORAGE

但是在Android 13以后这个权限被细化成了三个:

1
2
3
public static final String READ_MEDIA_AUDIO = "android.permission.READ_MEDIA_AUDIO";
public static final String READ_MEDIA_IMAGES = "android.permission.READ_MEDIA_IMAGES";
public static final String READ_MEDIA_VIDEO = "android.permission.READ_MEDIA_VIDEO";

如果是升级Android13之前就已经具有读写SDK的权限,那么升级到13之后,自己具有上述三个权限。

如果是升级Android13之后新装的应用,并且targetSDK小于33,则申请READ_EXTERNAL_STORAGE权限时,会自动转化为对上述三个权限的申请,权限申请框只一个
如果是升级Android13之后新装的应用,并且targetSDK大于等于33,则申请READ_EXTERNAL_STORAGE权限时会自动拒绝(同理WRITE_EXTERNAL_STORAGE也是一样)。必须申请上面三个权限才可以。