Сохранение файла в / Download дает имя / хранилище / emulated / 0 / Download.Иногда файл недоступен - PullRequest
0 голосов
/ 30 июня 2019

На своих устройствах Samsung я положил файл в папку /Download. Когда я выбираю файл в своем приложении (через файловый браузер), файл называется /storage/emulated/0/Download/myfile.db. Это имя хранится в настройках моего приложения.

При запуске приложения файл должен быть открыт. Сначала приложение проверяет, существует ли файл. В некоторых случаях, скажем, раз в 2 недели файл считается несуществующим! Это происходит также на мобильном телефоне моих друзей с полугода.

Почему это происходит? В течение многих лет все шло гладко.

Этот код работает 6 лет. Конечно, я добавил разрешения.

Ваша помощь очень ценится!

1 Ответ

1 голос
/ 30 июня 2019

Вы не можете использовать Download в качестве гарантированного места для хранения ваших файлов.Вы должны использовать Внутреннее хранилище для приложения.Это то, что Google написал о папке загрузки:

Это пространство называется внешним, поскольку оно не гарантировано доступно - это пространство для хранения, которое пользователи могут подключать к компьютеру в качестве внешнего устройства хранения.и даже может быть физически съемным.

Здесь вы можете прочитать подробнее о Внутреннем хранилище и Внешнее хранилище в Android.

Вот еще некоторая информация о папке Download от Google.

Внимание: Внешнее хранилище может стать недоступным, если пользователь извлекает SD-карту или подключает устройство к компьютеру.И файлы все еще видны пользователю и другим приложениям, которые имеют разрешение READ_EXTERNAL_STORAGE.Поэтому, если функциональность вашего приложения зависит от этих файлов или вам необходимо полностью ограничить доступ, вам следует вместо этого записать свои файлы во внутреннее хранилище .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...