Я не хочу получать доступ к внешнему хранилищу, мое приложение не запрашивает никаких разрешений, оно
обращается только к хранилищу с ограниченной областью действия. Насколько я
понимаю, операции чтения/записи в хранилище с ограниченной областью действия могут выполняться без каких-либо разрешений.
Я пытаюсь прочитать/записать файл в папке «Загрузки». Он работает, если создан самим приложением. Но если я вручную помещу туда файл с помощью adb push, он покажет ошибку как для операций чтения, так и для операций записи:
исключение: java.io. FileNotFoundException: /storage/emulated/0/Download/aaa.txt: ошибка открытия: EACCES (отказано в разрешении)
Ошибка возникает даже после того, как я повторно установить приложение, что делает невозможным восстановление настроек из предыдущего файла резервной копии.
Почему и как это решить? Это мой код:
// the file path: /storage/emulated/0/Download/aaa.txt
val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath
val filename = "aaa.txt"
val bytes = ByteArray(10)
try {
val file = File(dir, filename)
file.readBytes() // read
file.writeBytes(bytes) // write
Log.e(TAG, "ok")
} catch (e: Exception) {
Log.e(TAG, "exception: $e")
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ther-app-i
Ошибка разрешения при попытке чтения/записи файла, созданного другим приложением в хранилище с ограниченной областью дей ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение