0

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

int id = getLastImageId(); 
    int deleted = getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,  
    MediaStore.Images.Media._ID + "=?", new String[]{ Long.toString(id) }); 
    Log.i("", "total deleted rows:" + deleted); 

В LogCat, я могу видеть, что общее количество удаленных строк 1. Вы можете быть уверены, что метод getLastImageId правильно. Кроме того, я даже пытался удалить все в таблице MediaStore, но безрезультатно. Например:

int id = getLastImageId(); 
    int deleted = getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,  
    null, null); 
    Log.i("", "total deleted rows:" + deleted); 

Для этого примера, то общее число строк, удаляемый 834, который все в моем телефоне, но все изображения сохраняется. FYI, изображения, которые я проверяю, находятся на SDCard/DCIM/Camera

Надеюсь получить от вас помощь.

С уважением, Декстер

ответ

0

Я думаю, что ваш код только удаление данных из таблиц MediaStore.Images.Media таблицы, а не физические изображения.

Что вы можете задать в поле MediaStore.Images.Media.DATA, которое дает вам абсолютный путь к изображению.

Затем удалите файл, как если бы вы удалили обычный файл.

+0

Я не совсем уверен, что произошло, но после перезагрузки телефона он работает так, как ожидалось. getContentResolver(). delete действительно достаточно, чтобы удалить изображение. Спасибо, в любом случае! – user3300845

+0

ОК прохладно. Рад, что ты нашел свой путь. –

Смежные вопросы