У меня есть приложение, которое записывает большие файлы на внешний USB-накопитель. Каталог для записи этих файлов происходит из context.getExternalMediaDirs()
, поэтому обычно он выглядит как /storage/<UUID>/Android/media/com.app.package/
.
Моя проблема в том, что на всех устройствах, которые я тестировал до сих пор, это работает. Однако на телевизоре Sony Bravia (под управлением Android 8.0) я могу создавать файлы в каталоге внешних носителей, но если я вызываю mkdirs()
, чтобы создать каталог, он всегда возвращает false.
Мое приложение предназначено для API28, объявляет разрешения READ_EXTERNAL_STORAGE
и WRITE_EXTERNAL_STORAGE
и запрашивает их у пользователя во время выполнения.
Также кажется, что эта проблема исчезнет, если я разрешу телевизору Sony "отформатировать устройство как внешнеехранилище ", однако это форматирует его в FAT32, что накладывает ограничения на размер файла, которые неприемлемы для моего приложения.
Форматирование диска в NTFS через ПК позволяет создавать файлы, но не каталоги.
Я подозреваю, что это свидетельствует об ошибке в реализации Sony, но я хотел бы получить отзывы от сообщества.
Кто-нибудь сталкивался с таким на других устройствах? Есть ли потенциальный обходной путь?
Мне не имеет смысла, что мне будет разрешено создавать файл, но не каталог.