在Android13前读取SDcard 的内容只需要一个权限:
android.permission.READ_EXTERNAL_STORAGE
但是在Android 13以后这个权限被细化成了三个:
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也是一样)。必须申请上面三个权限才可以。