mkdirs возвращает false для каталога на SD-карте, в то время как родительский каталог доступен для записи

При запуске приложения для Android мне нужно создать каталог на SD-карте, для небольшого числа пользователей это не удается, и я не могу выяснить причину этого ...

(Я обнаружил похожие проблемы, вызванные отсутствием разрешения WRITE_EXTERNAL_STORAGE, оно есть и работает почти для всех пользователей, поэтому я не думаю, что это причина)

Я упростил предыдущую ситуацию, чтобы ее было легче объяснить. Если создание директории не удается, я запускаю тестовый пример, в котором я пытаюсь создать каталог .test на SD-карте:

new File(Environment.getExternalStorageDirectory(), ".test").mkdir() -> false
new File(Environment.getExternalStorageDirectory(), ".test").mkdirs() -> false

Свойства файла соответствующих каталогов:

/sdcard/.test (существует = false canWrite = false canRead = false canExecute = err isDirectory = false isFile = false)

/ SDCARD (существует = true canWrite = true canRead = true canExecute = ошибка isDirectory = true isFile = false)

/ (существует = true canWrite = false canRead = true canExecute = ошибка isDirectory = true isFile = false)

getExternalStorageState = установлен

(canExecute возвращает ошибку, потому что тест выполняется на SDK <9)

Предложения и идеи очень приветствуются ...

Ответы на вопрос(12)

Ваш ответ на вопрос