重命名由android 10中的应用程序创建的Mediastore的文件。正在使用Android API 30,但在API 29中显示错误

重命名由android 10中的应用程序创建的Mediastore的文件。正在使用Android API 30,但在API 29中显示错误,第1张

重命名由android 10中的应用程序创建的Mediastore的文件。正在使用Android API 30,但在API 29中显示错误

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");        }

如果重命名失败,请使用SAF(如前所述)。如何在仅知道媒体内容Uri的Android中重命名文件



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5560478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存