イヤホンマイク、ヘッドセットと呼ばれる、再生、進む、戻るボタンの付いたイヤホンを検出します。
方法
dispatchKeyEvent()を、Activityにオーバーライドします。その後、該当するKEYCODEでアクションを指定してあげます。
例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| @Override
public boolean dispatchKeyEvent(KeyEvent event) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_HEADSETHOOK:
//ここに、再生ボタン押下時の動作を指定する
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);
}
|
KEYCODE_HEADSETHOOKってのが、再生ボタンのキーコードです。
キーコードを発見するには、引数であるeventをLogで出力してみればわかります。
1
| Log.v("event", event.toString());
|
LogCatにこんなかんじで出力されます。
これに気づかなくて、「イヤホン ボタン 検出」とか、「再生ボタン KEYCODE」とかでずっとググってました。
どんなハードウェアボタンもどんと来いですね!