2014-01-19 3 views
10

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

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

Environment.getExternalStorageDirectory();

значение в качестве переменной окружения?

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

+1

служба является также контекст, как служба расширяет контекст. поэтому вы можете вызвать 'getFilesDir()' в Service ... –

+0

есть ли способ получить это без контекста и без прохождения контекста? –

ответ

11

Невозможно.

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

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

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


Развейте:

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

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

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

+1

Как я могу получить 'data \ data' как из' data \ data \ com.Myapp' с помощью EnvironmentVar? –

2

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

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

Вот полное содержание Отправленные из документации:

enter image description here

enter image description here

Смежные вопросы