HOMEボタン押下イベントの取得方法

3,424 views
Skip to first unread message

ビギナー

unread,
Jan 8, 2010, 2:19:05 AM1/8/10
to Android-SDK-Japan
ある画面で作業中にHOMEボタンを押された場合にHOME画面に遷移させない
ようにしたいのですが

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
   if(event.getKeyCode()==KeyEvent.KEYCODE_HOME) {
 return true;
}
return super.dispatchKeyEvent(event);
}

上記記述でできるかなと思ったのですが戻るボタンの時はうまくいくのですが
ホームボタンを押してもこのイベントが発生しません。

どうすればいいかわかる方がおりましたら宜しくお願い致します。

Ryosuke OISHI

unread,
Jan 12, 2010, 11:56:56 PM1/12/10
to Android-SDK-Japan
ビギナーさん
おおいしです。こんにちは。

>ある画面で作業中にHOMEボタンを押された場合にHOME画面に遷移させない
>ようにしたいのですが

それはできないと思います。
英語ですが、以下のスレッドが参考になると思います。
http://groups.google.co.jp/group/android-developers/browse_thread/thread/379744ef80b3cb56/0dd8513a434e4764

私の理解では、HOMEボタンを取れるようにすると、悪意のあるアプリがホーム画面を
乗っ取ることが可能になってしまいますので、それを回避するため、HOMEを押せば
必ず、ホームアプリが呼ばれるようになっているのでしょう。

nagamatu

unread,
Jan 13, 2010, 11:29:34 AM1/13/10
to Android-SDK-Japan
frameworks/policies/base/phone/com/android/internal/policy/impl/
PhoneWindowManager.javaの interceptKeyTiメソッドにてアプリケーションに渡したくないキーの処理を行っている
ようです。

| boolean interceptKeyTi(WindowManagerPolicy.WindowState win,
| int code,
| int metaKeys,
| boolean down,
| int repeatCount)
| Called from the input thread before a key is dispatched to a window.
| Allows you to define behavior for keys that can not be overridden
by
| applications or redirect key events to a different window. This
method
| is called from the input thread, with no locks held.
|
| Note that if you change the window a key is dispatched to, the new
target window will receive the key event without having input focus.
|
| Parameters:
| win - The window that currently has focus. This is where the key
event will normally go.
| code - Key code.
| metaKeys - TODO
| down - Is this a key press (true) or release (false)?
| repeatCount - Number of times a key down has repeated.
| Returns:
| Returns true if the policy consumed the event and it should not be
further dispatched.

--

On 1月13日, 午後1:56, Ryosuke OISHI <roi...@android-group.jp> wrote:
> ビギナーさん
> おおいしです。こんにちは。
>
> >ある画面で作業中にHOMEボタンを押された場合にHOME画面に遷移させない
> >ようにしたいのですが
>
> それはできないと思います。

> 英語ですが、以下のスレッドが参考になると思います。http://groups.google.co.jp/group/android-developers/browse_thread/thr...

ビギナー

unread,
Jan 13, 2010, 7:18:33 PM1/13/10
to Android-SDK-Japan
おおいしさん

昨日返信したのですが何故かこちらに
反映されていないので念のため再度書きますが
返信ありがとうございます。

確かに悪意をもってアプリを作る人がいる事を
前提に考えたらそうなりますよね~

飯塚康至

unread,
Jan 13, 2010, 7:24:33 PM1/13/10
to android-...@googlegroups.com
いいづかです。

迂回策としてHOMEの置き換えアプリを作っておくという手もあるかと思います。

2010年1月14日9:18 ビギナー <a-fu...@j-real.com>:

> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。
>
>
>
>

--
以上、宜しくお願いします。

-------------------------------------------------------------------------------
【みんなの研究生活 P-Lab(1.0)】http://www.acl-inc.co.jp/p-lab
株式会社エイシーエル
飯塚 康至(明星大学非常勤講師・情報システム学会)
ブログ:http://d.hatena.ne.jp/YasushiIizuka/
Twitter:@yasushiiizuka
TEL:03-5308-1141
FAX:03-5308-1142
-------------------------------------------------------------------------------

ビギナー

unread,
Jan 13, 2010, 7:39:14 PM1/13/10
to Android-SDK-Japan
nagamatuさん

返信ありがとうございます。

知識がなく
frameworks/policies/base/phone/com/android/internal/policy/impl/
PhoneWindowManager.java
がどこにあるものなのかよくわからないのですが
ユーザーがいじれないとこにあるのでしょうか?

宜しくお願い致します。

ビギナー

unread,
Jan 13, 2010, 8:08:26 PM1/13/10
to Android-SDK-Japan
飯塚さん

返信ありがとうございます。

調べたらHOMEの置き換えアプリ作ってる人が
世の中にはいるんですね、そんな事ができる
事すら知らなかったです。

ただ、今の自分の能力では何をどうすれば
いいのかがよくわからなかったりします・・・

申し訳ありません。

合間合間に作業しているので時間はかかると思いますがチャレンジしてみます。

ビギナー

unread,
Jan 13, 2010, 8:08:41 PM1/13/10
to Android-SDK-Japan

飯塚康至

unread,
Jan 13, 2010, 8:20:27 PM1/13/10
to android-...@googlegroups.com
こんにちは、
android-sdk-windows\platforms\android-1.6\samples
にサンプルがあったりします。私も手探りでやってますのでみんな一緒です!
頑張りましょう!!

2010年1月14日10:08 ビギナー <a-fu...@j-real.com>:

nagamatu

unread,
Jan 13, 2010, 10:14:34 PM1/13/10
to Android-SDK-Japan

ビギナー

unread,
Jan 14, 2010, 2:38:59 AM1/14/10
to Android-SDK-Japan
飯塚さん

返信ありがとうございます。

sampleの存在をすっかり忘れてました。
ネットとsampleと本とヒントを探すべき場所が
山ほどありますね・・・

ありがとうございます。

ビギナー

unread,
Jan 14, 2010, 2:51:24 AM1/14/10
to Android-SDK-Japan
nagamatuさん

返信ありがとうございます。

英語力も必要そうですね・・・

教えていただいたサイト、まだ全体を把握しきれてないですが今後も
出番がありそうですね。

ありがとうございます。

Reply all
Reply to author
Forward
0 new messages