试图使用范围存储(scoped storage)来针对 Android R(API 30)进行开发。使用以下代码打开媒体库的图片选择器,以允许用户选择一个或多个图像:
new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
我获得了Uri列表,例如:
content://com.android.providers.media.documents/document/image%3A189
content://com.android.providers.media.documents/document/image%3A190
我试图生成请求删除的意图:
PendingIntent intent = MediaStore.createDeleteRequest(getContentResolver(), uris);
但是这会抛出异常:
java.lang.IllegalArgumentException: All requested items must be referenced by specific ID
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.call(ContentProviderNative.java:732)
at android.content.ContentResolver.call(ContentResolver.java:2405)
at android.provider.MediaStore.createRequest(MediaStore.java:822)
at android.provider.MediaStore.createDeleteRequest(MediaStore.java:985)
...
如何将Uri转换为
MediaStore.createDeleteRequest
期望的特定格式?