Как получить доступ к getFilesDir() в качестве переменной среды?

Я хочу получить доступ к getFilesDir(), который является методом контекста.

Есть ли способ доступа к нему аналогично тому, как я обращаюсь к внешнему хранилищу?

Environment.getExternalStorageDirectory();

означает переменную среды?

Может быть статический контекст приложения? как я хочу называть это из неконтекстного класса (такое же приложение, но не для активности).

Ответ 1

Это невозможно.

Context.getFilesDir() возвращает путь, привязанный к вашему пакету, и Context требуется для доступа к имени пакета.

Environment отличается тем, что существуют только константы, общие для всех приложений, работающих в одной и той же среде выполнения.

Однако Context доступен практически везде в приложении для Android, поэтому это не должно быть проблемой.


Последующие действия:

как насчет Environment.getDataDirectory()? как я могу получить data\data как от data\data\com.Myapp с помощью EnvironmentVar?

Environment.getDataDirectory() просто возвращает часть каталога данных, общую для всех приложений. Например, /data/data.

Чтобы получить свои собственные файлы dir (getFilesDir()), к нему нужно добавить имя пакета и "/files". Context реализация делает это для вас.

Ответ 2

Существует отличная документация по этому вопросу, сделанная пользователем Githib, что очень ценно. Может быть, это поможет кому-то:

https://gist.github.com/granoeste/5574148

Вот содержимое, размещенное в документации:

введите описание изображения здесь

введите описание изображения здесь