2014-01-19 2 views
10

문맥 방법 인 getFilesDir()에 액세스하고 싶습니다.getFilesDir()에 환경 변수로 액세스하는 방법은 무엇입니까?

외장 스토리지에 액세스하는 것과 비슷한 방식으로 액세스 할 수 있습니까?

Environment.getExternalStorageDirectory();

환경 변수로 의미?

어쩌면 응용 프로그램 정적 컨텍스트? 비 문맥 (non-context) 클래스 (동일한 앱 서비스이지만 액티비티가 아닌 클래스)에서 이것을 호출하려고합니다.

+1

서비스도 상황이다 아마 사람을 도움이 될 것입니다. 그래서 서비스에서'getFilesDir()'을 호출 할 수 있습니다 ... –

+0

컨텍스트없이 컨텍스트를 전달하지 않고이를 얻을 수있는 방법이 있습니까? –

답변

11

불가능합니다.

Context.getFilesDir()은 패키지에 바인딩 된 경로를 반환하고 패키지 이름에 액세스하려면 Context이 필요합니다.

Environment은 동일한 런타임에서 실행되는 모든 앱에 공통된 상수 만 있기 때문에 다릅니다.

그러나 실제로는 문제가되지 않아야하므로 Context은 Android 애플리케이션에서 거의 모든 곳에서 사용할 수 있습니다.


후속 :

방법에 대한 Environment.getDataDirectory()? EnvironmentVar를 사용하여 data\datadata\data\com.Myapp에서 얻으려면 어떻게해야합니까?

Environment.getDataDirectory()은 모든 응용 프로그램에 공통적 인 데이터 디렉토리 부분을 반환합니다. 예 : /data/data.

자신의 파일 디렉토리 (getFilesDir())를 얻으려면 패키지 이름과 "/files"을 추가해야합니다. Context 구현이이 작업을 수행합니다.

+1

어떻게 EnvironmentVar를 사용하여'data \ data \ com.Myapp'에서'data \ data'를 얻을 수 있습니까? –

2

Githib 사용자가 수행 한 매우 유용한 문서가 있습니다. 여기

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

이 문서에서 게시 된 전체 내용이다 : 서비스 컨텍스트를 확장으로

enter image description here

enter image description here

관련 문제