Как сохранить файл в общедоступном хранилище с помощью Android Kotlin? ⇐ Android
-
Anonymous
Как сохранить файл в общедоступном хранилище с помощью Android Kotlin?
Я новичок в Android/Kotlin.
Я могу сохранить файл .txt в папке частного приложения (/data/data/com.sky.altipro/files/AltiPro2023-08-26-14:43:08.908.log) без проблем.
Однако я не нашел способа сохранить его в общедоступном хранилище местоположении (/storage/emulated/0/Documents). Приходит хорошо известное сообщение о нарушении:
// каталог val = this.filesDir //каталог val = File(this.filesDir, "AltiPro").apply { mkdirs() } // каталог val = File(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), "AltiPro").apply { mkdirs() } // каталог val = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "AltiPro").apply { mkdirs() } // каталог val = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) Каталог val = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) val файл = Файл (каталог, имя файла) file.appendText("${location.time},${location.latitude},${location.longitude},$AltitudeInt\n") Вызвано: java.io.FileNotFoundException: /storage/emulated/0/Documents/AltiPro2023-08-27-18:06:55.240.txt: ошибка открытия: EPERM (операция не разрешена). Я попробовал разрешения манифеста... но начиная с API30 это не имеет никакого эффекта.
Этот файл содержит информацию о рейсе, и я хотел бы, чтобы пользователь мог загрузить его и просмотреть в Excel или Google Earth.
Я прочитал документацию по Android, но не смог разработать код, так как API30 показался мне довольно сложным и не нашел ни одного реального примера в сети.
Есть ли какой-нибудь простой код, который вдохновит меня?
Спасибо.
Я новичок в Android/Kotlin.
Я могу сохранить файл .txt в папке частного приложения (/data/data/com.sky.altipro/files/AltiPro2023-08-26-14:43:08.908.log) без проблем.
Однако я не нашел способа сохранить его в общедоступном хранилище местоположении (/storage/emulated/0/Documents). Приходит хорошо известное сообщение о нарушении:
// каталог val = this.filesDir //каталог val = File(this.filesDir, "AltiPro").apply { mkdirs() } // каталог val = File(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), "AltiPro").apply { mkdirs() } // каталог val = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "AltiPro").apply { mkdirs() } // каталог val = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) Каталог val = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) val файл = Файл (каталог, имя файла) file.appendText("${location.time},${location.latitude},${location.longitude},$AltitudeInt\n") Вызвано: java.io.FileNotFoundException: /storage/emulated/0/Documents/AltiPro2023-08-27-18:06:55.240.txt: ошибка открытия: EPERM (операция не разрешена). Я попробовал разрешения манифеста... но начиная с API30 это не имеет никакого эффекта.
Этот файл содержит информацию о рейсе, и я хотел бы, чтобы пользователь мог загрузить его и просмотреть в Excel или Google Earth.
Я прочитал документацию по Android, но не смог разработать код, так как API30 показался мне довольно сложным и не нашел ни одного реального примера в сети.
Есть ли какой-нибудь простой код, который вдохновит меня?
Спасибо.
Мобильная версия