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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。