ハードウェアキーを取得する
|今回は、Androidで定義されているキーの一覧を紹介します。Androidのハードウェアキーは、おおむね4つ、メニューキー、検索キー、戻るキー(Backキー)、ホームキー(HOMEキー)が有名です。
Android端末でのハードウェアキーの並びにガイドラインが無く自由なことから、キー配置はプラットフォームの「分断」の象徴として揶揄されています。
しかし、キーの種類に目を向けると(KeyEventで定義されているものは)、Androidの「自由」を象徴するように沢山の種類があります。
KeyEventで定義されているKeyCodeマクロは大まかに以下の6つに分類できます。
- 専用キー(MENU/Search/Back/Homeなど)
- ゲームパッド用ボタン
- QWERTYキー
- 十字キー
- GoogleTVのようなテレビリモコン用のハードウェアキー
- 音楽/動画の再生用のメディア制御ハードウェアキー
ゲームパッド用ボタンは、ゲーム用途を意識したAndroid端末(XperiaPlayなど)を考えており、今後のトレンドに備えたKeyCodeといえます。
参考:http://developer.android.com/reference/android/view/KeyEvent.html
※一般的なQWERTYキーについては説明を省略しています。上記KeyEventを参照してください。
サンプルコード:キーの取得方法
基本となるサンプルコードは以下の通りです。
@Override public boolean dispatchKeyEvent(KeyEvent e) { // DOWNとUPが取得できるのでログの2重表示防止のためif if (e.getAction() == KeyEvent.ACTION_DOWN) { //キーコード表示 Log.d("KeyCode","KeyCode:"+ e.getKeyCode()); } return super.dispatchKeyEvent(e); }
Activity#dispatchKeyEventでキーのPushとReleaseを取得できます。
KeyEvent#getKeyCodeメソッドで取得したキーコードはKeyEvent.KEYCODE_BACKなど、KeyEventのマクロ定義と比較して判定してください。
TechBoosterではキー入力に関して、以下のような様々なテクニックを紹介しています。あわせてどうぞ。
代表的なハードウェアキー
代表的なハードウェアキーの一覧です。あまり使われていないキー(ヘッドセット等)も定義されています。またHOMEキーなど一部のハードウェアキーはアプリケーションで取得することができません。
ハードウェアキーのマクロ定義 | 概要 |
---|---|
KEYCODE_APP_SWITCH | アプリケーションの切り替え |
KEYCODE_BACK | バックキー |
KEYCODE_CALL | 通話キー |
KEYCODE_CAMERA | カメラ起動 |
KEYCODE_ENDCALL | 終話キー |
KEYCODE_ENVELOPE | メール起動特殊キー |
KEYCODE_EXPLORER | ファイラ起動用特殊キー |
KEYCODE_FOCUS | カメラフォーカスキー |
KEYCODE_HEADSETHOOK | ヘッドセット割込キー |
KEYCODE_HOME | ホームキー |
KEYCODE_MENU | メニューキー |
KEYCODE_POWER | 電源キー |
KEYCODE_SEARCH | 検索キー |
KEYCODE_SETTINGS | 設定キー |
KEYCODE_SWITCH_CHARSET | 文字入力モード切替 |
KEYCODE_VOLUME_DOWN | ボリュームDOWN |
KEYCODE_VOLUME_MUTE | ミュート |
KEYCODE_VOLUME_UP | ボリュームUP |
以下、ゲームパッド、十字キー、メディア制御キー、テンキー、TVリモートなど特殊なキーコード一覧です。
KeyEventマクロ ゲーム用
XperiaPlayなどゲーム用インターフェイスです。
ゲームパッドのマクロ定義 | 概要 |
---|---|
KEYCODE_BUTTON_A | Aボタン |
KEYCODE_BUTTON_B | Bボタン |
KEYCODE_BUTTON_C | Cボタン |
KEYCODE_BUTTON_L1 | L1ボタン |
KEYCODE_BUTTON_L2 | L2ボタン |
KEYCODE_BUTTON_MODE | モードボタン |
KEYCODE_BUTTON_R1 | R1ボタン |
KEYCODE_BUTTON_R2 | R2ボタン |
KEYCODE_BUTTON_SELECT | 選択ボタン |
KEYCODE_BUTTON_START | スタートボタン |
KEYCODE_BUTTON_THUMBL | 左Thumbボタン |
KEYCODE_BUTTON_THUMBR | 右Thumbボタン |
KEYCODE_BUTTON_X | Xボタン |
KEYCODE_BUTTON_Y | Yボタン |
KEYCODE_BUTTON_Z | Zボタン |
KeyEventマクロ 十字キー
十字キーはDPADとして専用にマクロが用意されています。
十字キーの定義 | 概要 |
---|---|
KEYCODE_DPAD_CENTER | センターキー |
KEYCODE_DPAD_DOWN | 下キー |
KEYCODE_DPAD_LEFT | 左キー |
KEYCODE_DPAD_RIGHT | 右キー |
KEYCODE_DPAD_UP | 上キー |
KeyEventマクロ メディア制御キー
メディアの制御に特化したハードウェアキーです。
メディアのマクロ定義 | 概要 |
---|---|
KEYCODE_MEDIA_CLOSE | 終了キー |
KEYCODE_MEDIA_EJECT | イジェクトキー |
KEYCODE_MEDIA_FAST_FORWARD | 早送りキー |
KEYCODE_MEDIA_NEXT | 曲送りキー |
KEYCODE_MEDIA_PAUSE | 一時停止キー |
KEYCODE_MEDIA_PLAY | 再生キー |
KEYCODE_MEDIA_PLAY_PAUSE | 再生/一時停止共用キー |
KEYCODE_MEDIA_PREVIOUS | 曲戻しキー |
KEYCODE_MEDIA_RECORD | 録音キー |
KEYCODE_MEDIA_REWIND | 巻き戻しキー |
KEYCODE_MEDIA_STOP | 停止キー |
KeyEventマクロ テンキー
テンキーのマクロ一覧です。
テンキーのマクロ定義 | 概要 |
---|---|
KEYCODE_NUMPAD_0 | テンキー: 0 |
KEYCODE_NUMPAD_1 | テンキー: 1 |
KEYCODE_NUMPAD_2 | テンキー: 2 |
KEYCODE_NUMPAD_3 | テンキー: 3 |
KEYCODE_NUMPAD_4 | テンキー: 4 |
KEYCODE_NUMPAD_5 | テンキー: 5 |
KEYCODE_NUMPAD_6 | テンキー: 6 |
KEYCODE_NUMPAD_7 | テンキー: 7 |
KEYCODE_NUMPAD_8 | テンキー: 8 |
KEYCODE_NUMPAD_9 | テンキー: 9 |
KEYCODE_NUMPAD_ADD | テンキー: + |
KEYCODE_NUMPAD_COMMA | テンキー: , |
KEYCODE_NUMPAD_DIVIDE | テンキー: / |
KEYCODE_NUMPAD_DOT | テンキー: . |
KEYCODE_NUMPAD_ENTER | テンキー: エンター |
KEYCODE_NUMPAD_EQUALS | 等号 |
KEYCODE_NUMPAD_LEFT_PAREN | 括弧( |
KEYCODE_NUMPAD_MULTIPLY | テンキー: * |
KEYCODE_NUMPAD_RIGHT_PAREN | 括弧) |
KEYCODE_NUMPAD_SUBTRACT | テンキー: - |
KeyEventマクロ TVリモコン機能
TVリモコン機能がまとめられています。GoogleTVでの利用を想定しているようです。
TV Remoteのマクロ定義 | 概要 |
---|---|
KEYCODE_AVR_INPUT | AV入力切り替え |
KEYCODE_AVR_POWER | AV入力元電源キー |
KEYCODE_BOOKMARK | WebSiteのブックマーク |
KEYCODE_CAPTIONS | キャプション(字幕)キー |
KEYCODE_CHANNEL_DOWN | チャンネル切り替え(下) |
KEYCODE_CHANNEL_UP | チャンネル切り替え(上) |
KEYCODE_DVR | ビデオ入力モード |
KEYCODE_GUIDE | TVガイドキー |
KEYCODE_INFO | 情報キー |
KEYCODE_PROG_BLUE | 青ボタン |
KEYCODE_PROG_GREEN | 緑ボタン |
KEYCODE_PROG_RED | 赤ボタン |
KEYCODE_PROG_YELLOW | 黄ボタン |
KEYCODE_STB_INPUT | セットトップボックス入力切り替え |
KEYCODE_STB_POWER | セットトップボックス電源キー |
KEYCODE_TV | テレビ切り替え |
KEYCODE_TV_INPUT | テレビ入力切り替え |
KEYCODE_TV_POWER | テレビ電源キー |