2011/08/20

[a500]MEDIA_SCANNER_FINISHEDでよさそうに見える

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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。