MediaStore показывает изображения после удаления из файлового менеджера

Я использую MediaStore, чтобы получить все изображения с устройства Android. Затем после того, как я удалю некоторые изображения из файлового менеджера. Затем я снова использую MediaStore для получения изображений и получаю все удаленные файлы, что является проблемой.

Почему MediaStore возвращает файлы, которых больше нет на устройстве (удалено с устройства)?

Код, который я использую для получения изображения из MediaStore.

Uri uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

String[] projection = {MediaStore.MediaColumns.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME};

Cursor cursor = activity.getContentResolver().query(uri, projection, null, null, MediaStore.MediaColumns.DATE_ADDED + " DESC");

String ImagePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA));

Помогите решить эту проблему.

2 ответа

Почему MediaStore возвращает файлы, которых больше нет на устройстве (удалено с устройства)?

Потому что какой бы файловый менеджер вы ни использовали, он ничего не делал для MediaStore об удалении файлов. MediaStore узнаю в конце концов, но это может занять несколько часов.

Вы можете повторно сканировать медиа, используя следующий код

 MediaScannerConnection.scanFile(context, new String[]{imagePath}, null, new MediaScannerConnection.OnScanCompletedListener() {
    public void onScanCompleted(String path, Uri uri) {
        //something that you want to do
    }
});
Другие вопросы по тегам