次のエントリ: ソースからnkfインストール [cygwin]
ボリューム変更ハードキーのハンドリング
2011-02-17-2 / カテゴリ: [Android] / [permlink]
動作確認用アプリなんかで手抜きをしたい^a^k上下スクロールとかズームイン/アウトなんかにキー操作を割り当てしたい場合に。
標準だと「押す:ボリューム変更&UI表示 / 離す:通知音を鳴らす」という動作のため、KEYCODE_VOLUME_UPとKEYCODE_VOLUME_DOWNの両方をフックする必要がある。
というわけで、こんな感じ。
Androidでキー長押しはACTION_DOWNがコールバックされまくるんだな。
参考
キーイベントに応答するには - 逆引きAndroid入門
ハードキーフックの方法 - 明日の鍵
標準だと「押す:ボリューム変更&UI表示 / 離す:通知音を鳴らす」という動作のため、KEYCODE_VOLUME_UPとKEYCODE_VOLUME_DOWNの両方をフックする必要がある。
というわけで、こんな感じ。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_VOLUME_UP:
// ここにボリュームupが押されたときに走らせたい処理
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
// ここにボリュームdownが押されたときに走らせたい処理
return true;
default:
break;
}
break;
case KeyEvent.ACTION_UP:
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_VOLUME_UP:
case KeyEvent.KEYCODE_VOLUME_DOWN:
// キーが離された場合はイベントを捨てる
return true;
default:
break;
}
break;
default:
break;
}
return super.dispatchKeyEvent(event);
}
Androidでキー長押しはACTION_DOWNがコールバックされまくるんだな。
参考
キーイベントに応答するには - 逆引きAndroid入門
ハードキーフックの方法 - 明日の鍵
[
コメント ]
次のエントリ: ソースからnkfインストール [cygwin]
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12
