2014年2月15日土曜日

Android備忘録:BACKキーやHOMEボタンのイベント発行方法

Androidにおけるキーイベントの発行方法は
皆様ご存知だと思います。

1
2
KeyEvent event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_0);
dispatchKeyEvent(event);

これでできます。
KeyEvent() の1つ目の引数を KeyEvent.ACTION_DOWN にしている
人もいると思いますが、私はUPのときに発行させたいのでこうしています。

さて、通常のキーイベント発行ならこれで良いのですが、
特殊なキーの場合はこの方法がGoogleに許されていない
ものがあります。

BACKキーの発行

上記例の2つ目の引数を KeyEvent.KEYCODE_BACK にすればOKです。
画面が前のActivityに戻ります。
自分(Activity)を finish() しても同じでしょうか。

HOMEボタンの発行

(キーコードとしては KeyEvent.KEYCODE_HOME が用意されていますが)
HOMEボタンの発行は、dispatchKeyEvent() では発行できません。
公式情報はこちら

is never delivered to application. と書かれていますね。

では、HOMEボタンのイベントを発行することは出来ないのか?
以下のように書けば実現できます。

1
2
3
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);

何かのお役に立てたら幸いです。

SISYOU.KUM



0 件のコメント:

コメントを投稿