・ハードキーイベントの横取り方法
Activityでは、「dispatchKeyEvent」を使用。
Viewでは、「onKeyUp」「onKeyDown」を使用。
「onKeyUp」「onKeyDown」について、ハード(Androidのバージョン)により動作が異なるとの情報もあるため、「dispatchKeyEvent」の方が無難と思われる。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// 例はボタンが離された時
// ボタンが押された時を拾うにはKeyEvent.ACTION_DOWN
// (但し、長押しの場合、連続して呼ばれる事がある点に注意)
if (event.getAction() == KeyEvent.ACTION_UP) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_VOLUME_UP: // 音量アップボタン
// trueで、コード側で処理した事を表わす。
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN: // 音量ダウンボタン
return true;
// case
// :
default:
return super.dispatchKeyEvent(event);
}
}
return super.dispatchKeyEvent(event);
}
0 件のコメント:
コメントを投稿