Для моего приложения мне нужно обновить эскиз галереи.
Потому что всякий раз, когда я обновляю содержимое своего изображения, это не отражается на миниатюре. Миниатюра показывает данные о первом создании изображения, а не настоящее.
Но фактическое изображение содержит новые данные, поэтому мне также нужно отразить их в миниатюре. Побродив по этому форуму, я нашел следующий фрагмент кода для удаления текущей миниатюры, но я не могу вызвать эту функцию, потому что не могу получить photoId.
private static void removeThumbnails(ContentResolver contentResolver, long photoId) {
Cursor thumbnails = contentResolver.query(Thumbnails.EXTERNAL_CONTENT_URI, null, Thumbnails.IMAGE_ID + "=?", new String[]{String.valueOf(photoId)}, null);
for (thumbnails.moveToFirst(); !thumbnails.isAfterLast(); thumbnails.moveToNext()) {
long thumbnailId = thumbnails.getLong(thumbnails.getColumnIndex(Thumbnails._ID));
String path = thumbnails.getString(thumbnails.getColumnIndex(Thumbnails.DATA));
File file = new File(path);
if (file.delete()) {
contentResolver.delete(Thumbnails.EXTERNAL_CONTENT_URI, Thumbnails._ID + "=?", new String[]{String.valueOf(thumbnailId)});
}
}
В настоящее время я вызывал эту функцию как
removeThumbnails(pexelMimics.getContentResolver(),
ContentUris.parseId(uri));
Я думаю, что этот трюк будет работать для меня. Но это мое предположение. Если у вас, ребята, есть лучшее решение этой проблемы, пожалуйста, помогите мне.