Это исключение:
Код: Выделить всё
java.lang.IllegalArgumentException: Unknown URL content://media/external/file
at android.content.ContentResolver.delete(ContentResolver.java:1024)
context.getContentResolver().delete(MediaStore .Files.getContentUri("external"),
MediaStore.Files.FileColumns.DATA + "=?", new String[] {path });
После этого я вызываю MediaScannerConnection.scanFile() в родительском каталоге файла, потому что, по моему мнению, это наиболее функциональный способ уведомить MediaScanner об удалении файла и о том, как обновить содержимое MTP. Я пробовал все другие способы, которые нашел здесь, в stackoverflow (например, Android, как использовать файл сканирования MediaScannerConnection), но ничего не работает так хорошо, как этот.
Кстати. Я использую его только для API 11 и новее. Внешний накопитель конечно подключен.
У меня такие вопросы:
1. Знаете ли вы какую-либо причину, по которой возникает это исключение? Я не хочу просто игнорировать исключение. И я не хочу удалять этот код, хотя он вполне хорошо работает для большинства устройств.
2. Знаете ли вы какой-нибудь новый надежный метод, как уведомить MediaScanner и как немедленно обновить содержимое MTP при удалении какого-либо файла?
Подробнее здесь: https://stackoverflow.com/questions/214 ... me-devices