java.lang.IllegalArgumentException:未知的 URL 内容://媒体/外部/图像/媒体 在 android.content.ContentResolver.insert(ContentResolver.java:1837)
与某些设备。其中有故障的设备是Redmi 9A
ContentResolver contentResolver = context.getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.TITLE, fileName);
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, fileName);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, getMimeType(context, Uri.parse(pathFile)));
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES);
contentValues.put(MediaStore.MediaColumns.IS_PENDING, Cursor.FIELD_TYPE_INTEGER);
// add datetime
long now = System.currentTimeMillis() / 1000;
contentValues.put(MediaStore.MediaColumns.DATE_ADDED, now);
contentValues.put(MediaStore.MediaColumns.DATE_MODIFIED, now);
contentValues.put(MediaStore.MediaColumns.DATE_TAKEN, now);
//Media image.
Uri uriTarget = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
Redmi 9A 设备面临同样的问题,有人有解决方案吗?
val cr = this.contentResolver
val values = ContentValues()
values.put(MediaStore.DownloadColumns.DISPLAY_NAME, tempFile.toString().split("/").toTypedArray()[tempFile.toString().split("/").toTypedArray().size - 1])
values.put(MediaStore.DownloadColumns.MIME_TYPE, "image/jpeg")
values.put(MediaStore.DownloadColumns.RELATIVE_PATH, "Download/" + getString(R.string.app_name))
values.put(MediaStore.DownloadColumns.IS_PENDING, 1)
val uri = cr.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI, values)