ケータイについているハードウェアキーを押した時のイベントを検出します。
沢山キーが付いている端末を使っている時は、onKeyDownの第一引数を画面にダンプすることで各キーのキーコードを確認できます。
package com.example.test1; import android.os.Bundle; import android.app.Activity; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { Button btnAddAlerm; TextView txtMessage; /** * 画面生成時のハンドラ */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //-------------------- // 画面レイアウトを作成 //-------------------- LinearLayout layout = new LinearLayout( this ); layout.setOrientation( LinearLayout.VERTICAL ); setContentView( layout ); //---------------------------- // テキスト表示欄と、ボタンを画面に追加 //---------------------------- txtMessage = new TextView( this ); txtMessage.setText( "こんにちは" ); layout.addView( txtMessage ); } /** キークリック時のハンドラ */ @Override public boolean onKeyDown( int keyCode, KeyEvent e ) { switch ( keyCode ) { case KeyEvent.KEYCODE_VOLUME_DOWN: txtMessage.setText( "ボリュームDown" ); break; case KeyEvent.KEYCODE_VOLUME_UP: txtMessage.setText( "ボリュームUp" ); break; case KeyEvent.KEYCODE_DPAD_UP: txtMessage.setText( "上キー" ); break; case KeyEvent.KEYCODE_DPAD_DOWN: txtMessage.setText( "下キー" ); break; case KeyEvent.KEYCODE_DPAD_LEFT: txtMessage.setText( "左キー" ); break; case KeyEvent.KEYCODE_DPAD_RIGHT: txtMessage.setText( "右キー" ); break; case KeyEvent.KEYCODE_DPAD_CENTER: txtMessage.setText( "中央キー" ); break; default: txtMessage.setText( "不明なキー keyCode:" + String.valueOf( keyCode ) ); break; } return false; } } |
また、各キーコードはandroid.view.InputEvent.KeyEventクラスで定数の定義がされています。
コードと値の対応は以下の通りです。
プログラム中では、if ( keyCode == KeyEvent.KEYCODE_0 ) といった感じで使用します。
コード 定数名 ----- ------------------------ 0 KEYCODE_UNKNOWN 1 KEYCODE_SOFT_LEFT 2 KEYCODE_SOFT_RIGHT 3 KEYCODE_HOME 4 KEYCODE_BACK 5 KEYCODE_CALL 6 KEYCODE_ENDCALL 7 KEYCODE_0 8 KEYCODE_1 9 KEYCODE_2 10 KEYCODE_3 11 KEYCODE_4 12 KEYCODE_5 13 KEYCODE_6 14 KEYCODE_7 15 KEYCODE_8 16 KEYCODE_9 17 KEYCODE_STAR 18 KEYCODE_POUND 19 KEYCODE_DPAD_UP 20 KEYCODE_DPAD_DOWN 21 KEYCODE_DPAD_LEFT 22 KEYCODE_DPAD_RIGHT 23 KEYCODE_DPAD_CENTER 24 KEYCODE_VOLUME_UP 25 KEYCODE_VOLUME_DOWN 26 KEYCODE_POWER 27 KEYCODE_CAMERA 28 KEYCODE_CLEAR 29 KEYCODE_A 30 KEYCODE_B 31 KEYCODE_C 32 KEYCODE_D 33 KEYCODE_E 34 KEYCODE_F 35 KEYCODE_G 36 KEYCODE_H 37 KEYCODE_I 38 KEYCODE_J 39 KEYCODE_K 40 KEYCODE_L 41 KEYCODE_M 42 KEYCODE_N 43 KEYCODE_O 44 KEYCODE_P 45 KEYCODE_Q 46 KEYCODE_R 47 KEYCODE_S 48 KEYCODE_T 49 KEYCODE_U 50 KEYCODE_V 51 KEYCODE_W 52 KEYCODE_X 53 KEYCODE_Y 54 KEYCODE_Z 55 KEYCODE_COMMA 56 KEYCODE_PERIOD 57 KEYCODE_ALT_LEFT 58 KEYCODE_ALT_RIGHT 59 KEYCODE_SHIFT_LEFT 60 KEYCODE_SHIFT_RIGHT 61 KEYCODE_TAB 62 KEYCODE_SPACE 63 KEYCODE_SYM 64 KEYCODE_EXPLORER 65 KEYCODE_ENVELOPE 66 KEYCODE_ENTER 67 KEYCODE_DEL 68 KEYCODE_GRAVE 69 KEYCODE_MINUS 70 KEYCODE_EQUALS 71 KEYCODE_LEFT_BRACKET 72 KEYCODE_RIGHT_BRACKET 73 KEYCODE_BACKSLASH 74 KEYCODE_SEMICOLON 75 KEYCODE_APOSTROPHE 76 KEYCODE_SLASH 77 KEYCODE_AT 78 KEYCODE_NUM 79 KEYCODE_HEADSETHOOK 80 KEYCODE_FOCUS 81 KEYCODE_PLUS 82 KEYCODE_MENU 83 KEYCODE_NOTIFICATION 84 KEYCODE_SEARCH 85 KEYCODE_MEDIA_PLAY_PAUSE 86 KEYCODE_MEDIA_STOP 87 KEYCODE_MEDIA_NEXT 88 KEYCODE_MEDIA_PREVIOUS 89 KEYCODE_MEDIA_REWIND 90 KEYCODE_MEDIA_FAST_FORWARD 91 KEYCODE_MUTE 92 KEYCODE_PAGE_UP 93 KEYCODE_PAGE_DOWN 94 KEYCODE_PICTSYMBOLS 95 KEYCODE_SWITCH_CHARSET 96 KEYCODE_BUTTON_A 97 KEYCODE_BUTTON_B 98 KEYCODE_BUTTON_C 99 KEYCODE_BUTTON_X 100 KEYCODE_BUTTON_Y 101 KEYCODE_BUTTON_Z 102 KEYCODE_BUTTON_L1 103 KEYCODE_BUTTON_R1 104 KEYCODE_BUTTON_L2 105 KEYCODE_BUTTON_R2 106 KEYCODE_BUTTON_THUMBL 107 KEYCODE_BUTTON_THUMBR 108 KEYCODE_BUTTON_START 109 KEYCODE_BUTTON_SELECT 110 KEYCODE_BUTTON_MODE 111 KEYCODE_ESCAPE 112 KEYCODE_FORWARD_DEL 113 KEYCODE_CTRL_LEFT 114 KEYCODE_CTRL_RIGHT 115 KEYCODE_CAPS_LOCK 116 KEYCODE_SCROLL_LOCK 117 KEYCODE_META_LEFT 118 KEYCODE_META_RIGHT 119 KEYCODE_FUNCTION 120 KEYCODE_SYSRQ 121 KEYCODE_BREAK 122 KEYCODE_MOVE_HOME 123 KEYCODE_MOVE_END 124 KEYCODE_INSERT 125 KEYCODE_FORWARD 126 KEYCODE_MEDIA_PLAY 127 KEYCODE_MEDIA_PAUSE 128 KEYCODE_MEDIA_CLOSE 129 KEYCODE_MEDIA_EJECT 130 KEYCODE_MEDIA_RECORD 131 KEYCODE_F1 132 KEYCODE_F2 133 KEYCODE_F3 134 KEYCODE_F4 135 KEYCODE_F5 136 KEYCODE_F6 137 KEYCODE_F7 138 KEYCODE_F8 139 KEYCODE_F9 140 KEYCODE_F10 141 KEYCODE_F11 142 KEYCODE_F12 143 KEYCODE_NUM_LOCK 144 KEYCODE_NUMPAD_0 145 KEYCODE_NUMPAD_1 146 KEYCODE_NUMPAD_2 147 KEYCODE_NUMPAD_3 148 KEYCODE_NUMPAD_4 149 KEYCODE_NUMPAD_5 150 KEYCODE_NUMPAD_6 151 KEYCODE_NUMPAD_7 152 KEYCODE_NUMPAD_8 153 KEYCODE_NUMPAD_9 154 KEYCODE_NUMPAD_DIVIDE 155 KEYCODE_NUMPAD_MULTIPLY 156 KEYCODE_NUMPAD_SUBTRACT 157 KEYCODE_NUMPAD_ADD 158 KEYCODE_NUMPAD_DOT 159 KEYCODE_NUMPAD_COMMA 160 KEYCODE_NUMPAD_ENTER 161 KEYCODE_NUMPAD_EQUALS 162 KEYCODE_NUMPAD_LEFT_PAREN 163 KEYCODE_NUMPAD_RIGHT_PAREN 164 KEYCODE_VOLUME_MUTE 165 KEYCODE_INFO 166 KEYCODE_CHANNEL_UP 167 KEYCODE_CHANNEL_DOWN 168 KEYCODE_ZOOM_IN 169 KEYCODE_ZOOM_OUT 170 KEYCODE_TV 171 KEYCODE_WINDOW 172 KEYCODE_GUIDE 173 KEYCODE_DVR 174 KEYCODE_BOOKMARK 175 KEYCODE_CAPTIONS 176 KEYCODE_SETTINGS 177 KEYCODE_TV_POWER 178 KEYCODE_TV_INPUT 179 KEYCODE_STB_POWER 180 KEYCODE_STB_INPUT 181 KEYCODE_AVR_POWER 182 KEYCODE_AVR_INPUT 183 KEYCODE_PROG_RED 184 KEYCODE_PROG_GREEN 185 KEYCODE_PROG_YELLOW 186 KEYCODE_PROG_BLUE 187 KEYCODE_APP_SWITCH 188 KEYCODE_BUTTON_1 189 KEYCODE_BUTTON_2 190 KEYCODE_BUTTON_3 191 KEYCODE_BUTTON_4 192 KEYCODE_BUTTON_5 193 KEYCODE_BUTTON_6 194 KEYCODE_BUTTON_7 195 KEYCODE_BUTTON_8 196 KEYCODE_BUTTON_9 197 KEYCODE_BUTTON_10 198 KEYCODE_BUTTON_11 199 KEYCODE_BUTTON_12 200 KEYCODE_BUTTON_13 201 KEYCODE_BUTTON_14 202 KEYCODE_BUTTON_15 203 KEYCODE_BUTTON_16 204 KEYCODE_LANGUAGE_SWITCH 205 KEYCODE_MANNER_MODE 206 KEYCODE_3D_MODE 207 KEYCODE_CONTACTS 208 KEYCODE_CALENDAR 209 KEYCODE_MUSIC 210 KEYCODE_CALCULATOR 211 KEYCODE_ZENKAKU_HANKAKU 212 KEYCODE_EISU 213 KEYCODE_MUHENKAN 214 KEYCODE_HENKAN 215 KEYCODE_KATAKANA_HIRAGANA 216 KEYCODE_YEN 217 KEYCODE_RO 218 KEYCODE_KANA 219 KEYCODE_ASSIST |
関連記事
コメントを残す