« [Q5]Launcher2にlibを足してもだめ | メイン | [Q5]eclairとmasterの違い(init) »

2010/01/30

[Q5]電源OFFダイアログ

自分でビルドしてから、どうしても困ることがあった。
電源OFFだ。

SmartQ5にはボタンが4つ(リセット以外)があり、その1つが電源ボタンだ。
電源をOFFにするときには長押しすると、サイレントモードにしたり、電源OFFにしたりの選択肢が出てくる。
今のビルドでは電話系のものを組み込んでないため、電源OFFしか出てこない。
そこで電源OFFを選択すると、本当にいいのか聞いてくる。
そのダイアログでYESにすると、シャットダウンが始まって、電源OFFになる。

自分でビルドした場合、長押しするとダイアログが出てくるのだが、それと同時にバックライトも消えてしまうのだ。
他のボタンを押すと点灯するので、また長押しして、消える。
何度かやっているとうまくダイアログが表示されるのだが、そこで電源OFFを選んでも、今度は次の確認ダイアログで同じようなことが起こる。
そうやって嫌になり、リセットボタンを押してしまうのだ。


そもそも、電源OFFダイアログはどこで制御されているのか?

意外ッ! それはphone_policyッ!!

PhoneWindowManager.javaにあった。
正確には電源OFFダイアログではなく、キーの長押しだ。
interceptKeyTq()という関数で受け取っている。
Tqは、Queue Threadのことらしい。

そこでスリープしそうなところをコメントアウトしたら、直った。


ついでに書いておこう。

電源OFFを聞いてくるダイアログは、PowerDialog。
これは、phone_policy。

その次のシャットダウンを確認するダイアログは、ShutdownThread。
これは、frameworks。

同じように見えて実現している箇所が違うので、探すとき忘れないようにしよう。

トラックバック

このページのトラックバックURL:
http://app.justblog.jp/t/trackback/457987/23134399

このページへのトラックバック一覧 [Q5]電源OFFダイアログ:

コメント

コメントを投稿