2011/08/18

[a500]mount/umountのインテントが飛んでこない

Acer A500にEject SDをインストールしている。
まあ、だいたい動いている。

Android3.0/3.1だけなのか、A500がそうカスタマイズされているのかわからないが、設定アプリにSDのフォーマットやmount/umountの項目がなくなっている。
logcatで抜いてみると、voldががんばってなんとかしているし、MediaStoreImporterみたいなものも動いている。
だから、通知は受けとることができるのだろうと思う。


しかし、Intent.ACTION_MEDIA_MOUNTEDみたいなインテントは飛んでこないのだ。
あ、仲間がいた
飛んでこないのだよ。
Android 2くらいでは飛んでいたと思うので、バージョンが上がったためなのか、A500だけなのか。。


SDカードの挿抜は、ホスト側では割り込みとして検知される。
もし割り込みとして処理していないのなら、ポーリングするしかない。
Linuxの場合は、とにかく最後はsysfsでの通知になっている。
ueventに"add"とか"remove"とかするのだ。

これをVoldCmdListenerが受けとって、あれこれやっている。
出てくる人は「Vold」「VoldCmdListener」「MediaScanner」「MediaStoreImportService」「MediaStoreImporter」だ。
PowerManagerServiceもちょくちょく出てくるが、気にしなくていいのかな?
ただ、PowerManagerServiceがMediaScannerServiceをWakeLockさせているように見える。
WakeLockだから、眠らないようにさせる?→そういう認識でよさそうだ

ここにはMountServiceが出てこない。
だからACTION_MEDIA_MOUNTEDがないのかな?

0 件のコメント:

コメントを投稿

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

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