java.lang.IllegalArgumentException:不允许移动内容:// media / external / file / 116,这不是定义明确的集合的一部分
因此,如果您使用集合,则不适用于Android Q;
Uri extUri = MediaStore.Files.getContentUri(MediaStore.VOLUME_EXTERNAL);
但允许“定义明确的集合”,例如:
Uri extUri = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL);
// Use "Pictures/MyFolder" for RELATIVE_PATH
我留给您查找其他定义明确的集合。
为什么这仅适用于Android Q我不知道。
您可以在以下Java文件中看到该消息:https ://android.googlesource.com/platform/packages/providers/MediaProvider/+/refs/heads/master/src/com/android/providers/media/MediaProvider.java
引用:
// We only support movement under well-defined collections
switch (match) {
case AUdio_MEDIA_ID:
case VIDEO_MEDIA_ID:
case IMAGES_MEDIA_ID:
case DOWNLOADS_ID:
break;
default:
throw new IllegalArgumentException("Movement of " + uri
+ " which isn't part of well-defined collection not allowed");
}