Основной каталог Загрузка носителя не разрешенаAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Основной каталог Загрузка носителя не разрешена

Сообщение Гость »


Пытаюсь сохранить файл PDF в каталоге загрузок, но после того, как getExternalStoragePublicDirectory полностью устарел после Android Q, невозможно сохранить файлы в любом другом месте, кроме папки DCIM или Pictures, как следующее исключение вылетает при попытке сохранить там файл.

IllegalArgumentException: загрузка основного каталога не разрешена контент://медиа/внешний/изображения/медиа; разрешенные каталоги: [DCIM, Картинки]

Имейте следующий код.

private fun saveFile(input: ByteArray) { val fileName = "myFile.pdf" val outputStream = if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.Q) { Каталог val = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) val file = Файл (каталог, имя файла) FileOutputStream (файл) } еще { valsolver = context.contentResolver val contentValues ​​= ContentValues().apply { put(MediaStore.MediaColumns.DISPLAY_NAME, имя_файла) put(MediaStore.MediaColumns.MIME_TYPE, "images/*") put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS) } resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)?.let { resolver.openOutputStream(оно) } } выходной поток?.use {поток -> поток.запись (вход) } } Очевидно, что при изменении пути к DIRECTORY_DCIM все работает как положено, но по требованиям файл должен быть сохранен в загрузках, как и раньше. Буду признателен за любую помощь.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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