ユーザーが曲をスキップするために volumeUp ハードウェア ボタンを長押しし、短押しで通常の volumeUp アクションを実行できるようにしたいと考えています。
私は両方を区別することができます ( onKeyDown、onKeyLongPress、および onKeyUp の間のフラグを使用してこのソリューションを見つけました) が、ボリュームアップボタンが押されたときに標準/スーパーアクションを呼び出すことができるかどうか疑問に思っています。volumeUp アクションがいつ (onKeyDown または onKeyUp イベントで) 呼び出されているのか、どこで呼び出せばよいのかわかりません。
それとも、音量を変更する独自の関数を作成する必要がありますか?
ありがとう。
私のコード:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
event.startTracking();
if (bLong) {
bShort = false;
return true;
} else {
bShort = true;
bLong = false;
return true;
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
if (bShort) {
bShort = false;
bLong = false;
if (mp != null) {
//HERE IS WHERE I WANT TO CALL THE VOLUME-UP ACTION
}
return true;
}
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
if (bRunning && mp != null) {
playNextSong();
}
bShort = false;
bLong = false;
return true;
}
return super.onKeyLongPress(keyCode, event);
}