Uri content://media/external/file не существует для некоторых устройствAndroid

Форум для тех, кто программирует под Android
Anonymous
Uri content://media/external/file не существует для некоторых устройств

Сообщение Anonymous »

У меня возникла проблема с некоторыми устройствами. Я не могу воспроизвести это ни на одном устройстве, но у меня есть довольно много отчетов о сбоях, о которых сообщили некоторые пользователи.

Это исключение:

Код: Выделить всё

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

Вернуться в «Android»