2014-01-19 13 views
10

コンテキストメソッドであるgetFilesDir()にアクセスします。getFilesDir()に環境変数としてアクセスする方法は?

外部ストレージにアクセスするのと同様の方法でアクセスできますか?

Environment.getExternalStorageDirectory();

環境変数としての意味?

多分アプリケーションの静的コンテキストですか?私はこれを非コンテキストクラス(同じアプリケーションサービスであるが、アクティビティではない)から呼び出す必要があります。

+1

サービスもサービスがコンテキストを拡張するとコンテキストです。あなたはサービスで 'getFilesDir()'を呼び出すことができます... –

+0

はコンテキストなしでコンテキストを渡すことなくこれを得る方法がありますか? –

答えて

11

これはできません。

Context.getFilesDir()はパッケージにバインドされたパスを返し、パッケージ名にアクセスするにはContextが必要です。

Environmentは、同じランタイムで実行されているすべてのアプリに共通の定数しかないため、これとは異なります。

しかし、Contextは実際にはAndroidアプリケーション内のあらゆる場所で利用できるため、これは実際問題ではありません。


フォローアップ:

方法についてEnvironment.getDataDirectory()? EnvironmentVarを使用してをdata\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

関連する問題