Android Удаление файлов MediaScannerConnection

Я пытаюсь удалить некоторые файлы или каталоги из внутренней памяти (ASUS TF101) с помощью команды File.delete(). Однако с помощью проводника Android я вижу, как файлы удаляются, но с помощью проводника Windows они все еще отображаются там.

Я решил аналогичную проблему при добавлении файлов, просто создав MediaScannerConnection (и используя метод scanFile).

кто-нибудь знает, как решить эту проблему? Конечно, недопустимо перезапускать устройство, так как конечному пользователю такое «решение» не понравится.


person user1572758    schedule 02.08.2012    source источник


Ответы (2)


См. ответ manisha в этой теме: Удаление файла Android оставляет пустое место в галерее

В моем случае это работало нормально, потому что я сохранял фотографию, а затем сканировал ее с помощью MediaScannerConnection, поэтому, когда сканирование завершается, у меня есть URI этого файла, а затем я могу использовать следующий код без проблем.

getContentResolver().delete(imageUri, null, null);

Надеюсь, что это работает для вас. Это кажется более подходящим, чем принудительное перемонтирование SD-карты путем отправки намерения в систему Android.

person Luis    schedule 03.01.2013
comment
Большое спасибо, чувак. Я перепробовал так много методов, но ни один из них не работал в Android 4.2, но твое предложение сработало нормально. - person Praveena; 13.02.2015

У меня была такая же проблема, но я нашел ответ:

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

Попробуй это:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

Документ Google: http://developer.android.com/reference/android/content/Intent.html#ACTION_MEDIA_MOUNTED

person Allen Chu    schedule 17.12.2012
comment
Это больше не работает с Android 4.4 KitKat, ссылка android.stackexchange.com/a/57915 - person VCD; 03.01.2018