このエントリーをはてなブックマークに追加

2010年1月29日金曜日

Check The Status Of SD Card

[In English]
Today I wrote how to check the free space and status of SD Card on Android.

The following code is a simple way of checking if the free space is enough or not.

final double saveSize = (The file size);
File file = Environment.getExternalStorageDirectory();
StatFs statFs = new StatFs(file.getAbsolutePath());
final double freeSize = statFs.getFreeBlocks() * statFs.getBlockSize();
if (freeSize < saveSize) {
// There is not enough space in SD Card
} else {
// There is enough space in SD Card
}


If you want to make sure whether SD Card is inserted to the mobile device or not, you can use Environment class static method for it.

String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)){
// SD Card is mounted
} else {
// SD Card is not mounted
}

You can check the other status of SD Card as well as mount(insert) status,
so if you want to know it, please see the java doc.
for example, Read-Only(Environment.MEDIA_MOUNTED_READ_ONLY).



[In Japanese]
本日は、Android上でSDカードの空き容量やステータスの確認方法につて、ブログを書きました。

下記のコードは空き容量が十分であるかどうかを確認するための簡単な方法です。

final double saveSize = (ファイルサイズ);
File file = Environment.getExternalStorageDirectory();
StatFs statFs = new StatFs(file.getAbsolutePath());
final double freeSize = statFs.getFreeBlocks() * statFs.getBlockSize();
if (freeSize < saveSize) {
// 十分な空き容量なし
} else {
// 十分な空き容量があるため、ファイルを保存
}


また、その他にSDカードが端末に挿入さえているかどうかをチェックしたい場合は、Environmentクラスの
staticメソッドを使うことで確認できます。

String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)){
// SD Card is mounted
} else {
// SD Card is not mounted
}

マウント(挿入)されているかどうかのSDカードの状態確認以外にも色々と確認できますので、興味のある方は、Environmentクラスのjava docを参照してみてください。
例) 読み取り専用の場合:(Environment.MEDIA_MOUNTED_READ_ONLY)

0 件のコメント:

コメントを投稿