Category Archives: Android

adb shell からSDカードをアンマウントしたいのですがわかりません

はじめに
「adb shell からSDカードをアンマウントしたい」人ごめんなさい。
このエントリに解決方法は載ってません。ごめんなさい。

SDカードのアンマウントは、[Settings]→[SD card & phone storage]で開かれる『SD Card & phone storage settings』で行える。
(日本語の場合[設定]→[ストレージ]で『ストレージの設定』)

設定画面には以下が並ぶ。
これは AVD Android 2.3.3の場合だけど他のバージョンでも文言が違うだけで大体同じ。

『Unmount SD Card』をタップすれば、しばらくの後にアンマウントされる。

これが一般的なSDカードのアンマウント手順。

これをコマンドライン(adb shell)で行いたい。
adb shellからこんなかんじ。

1
2
# umount /mnt/sdcard/.android_secure
# umount /mnt/sdcard

先に.android_secureをアンマウントすること。
というか、いきなり/mnt/sdcardをアンマウントしてもfailed。

これでマウントポイント(/mnt/sdcard)の中身は空になるので、アンマウントできたかのように見える。

『SD card & phone storage』を開く。

手動でアンマウントした場合と状態が異なっている。
『Total space』と『Available space』はUnavailableではなく 0byteになっているし、『Mount SD Card』となるべき項目は、『Unmount SD Card』のまま。

実際にストレージがどのような状態になっているのかAPIで調べる。
次のAPIはSDカードの状態を文字列で返す。

1
String status = Environment.getExternalStorageState();

Environment | Android Developers

手動マウント時には、”mounted”つまりEnvironment.MEDIA_UNMOUNTEDとなるが、umountコマンドによる手段だと、”mounted”(Environment.MEDIA_MOUNTED)。

まだマウントされている状態なのかもしれない。
サイズ0のメディアをマウントしている状態のよう。

umountした後に何かしないといけないのかもしれないが。わからない。
おしえてエロい人。

OpenCV-2.3.1 Android プロジェクトのエラー

AndroidでOpenCVはじめました。
FedoraでEclipse使うのは初めてなので、開発環境の構築からなにやら色々やりながら泣きながらなんとか実機(SHARP IS03)でOpenCVのサンプルプログラムを実行。←いまここ

最初、
OpenCV-2.3.1のプロジェクトをインポートすると、OpenCVのプロジェクトがエラーとなりビルドできない。SampleやTutorialのプロジェクトも引きずられる。
Eclipseのコンソールには以下のメッセージ。

1
2
3
[OpenCV-2.3.1] Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead. Please use Android Tools > Fix Project Properties.
[OpenCV-2.3.1] Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead. Please use Android Tools > Fix Project Properties.
[OpenCV-2.3.1] Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

OpenCV-2.3.1のプロジェクトを右クリックして、メニューから
[Android Tools] -> [Fix Project Properties]
で直る。
これ、メッセージの通りであるけど、Pleiadesなどで日本語化してある場合は、
[Androidツール] -> [プロジェクト・プロパティを修正]
となる。

オライリージャパン (2010/09/04)