SDカードを挿抜してもMOUNTEDなどがわからないので、MEDIA_SCANNER_FINISHEDを受けとるようにしてみた。
うん、よさそうだ。
Eject SD
まあ、よしとしよう。
------------------------------------
このアプリは、こんなものをimportしている。
import android.os.storage.IMountService;
import android.os.ServiceManager;
なので、eclipseからではビルドできない。
私は、Android2.3.4_r1環境でビルドさせている。
これを普通にやるなら、リフレクション、というやつを使うのかしら?
そこら辺は詳しくないので、割愛だ。
マウント状態の取得には、これを使っている。
IMountService::getVolumeState(パス);
staticメソッドではないので、IMountServiceのインスタンスをもらってこなくてはならない。
IBinder service = ServiceManager.getService("mount");
mMountService = IMountService.Stub.asInterface(service);
マウント状態は「mounted」とか「unmounted」などが戻ってくるのだが、文字列がどこから来るのかが分かっていない。
やってみたらこういう文字列が戻って来たので、それで実装している。
ちょっと怖いところだ。
マウントさせるときは、こう。
mMountService.mountVolume(パス);
A500でしか確認していないので、他で動作するかはよくわからん。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。