現在発売されている、G1や、Dev Phoneでは、SDカードディレクトリは、/sdcardにマウントされますが、これらのマウントポイントは将来変更されたり、機種によっては違う値の可能性もあります。

このため、Android SDKでは、外部ストレージディレクトリの取得メソッドが用意されています。

Environment.getExternalStorageDirectory()

SDカードにファイルを書き込む場合は、この、getExternalStorageDirectoryメソッドで返された値に、自分のアプリケーションで使用するためのディレクトリ名を付加して、その下に書き込みを行うのが通常の処理となります。

ちなみに、Dev Phoneでは、SDカードがマウントされていても、いなくても/sdcardの値を返します。

マウントされているかの判断は、Environment.getExternalStorageState()を使用します。

Environment.getExternalStorageState

外部ストレージがマウントされていると、Environment.MEDIA_MOUNTEDを返します。

マウントされていない場合は、Environment.MEDIA_REMOVEDを返します。

書くまでもないが、以下のようなコードとなります。


public static boolean isSdCardWriteable(){
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {
return true;
}
return false;
}

ブログ内の関連する記事