gpt4 book ai didi

android - 如何捕捉 Longpress 并在 KEYCODE_VOLUME_UP 上调用标准操作?

转载 作者:行者123 更新时间:2023-11-29 18:02:51 24 4
gpt4 key购买 nike

我希望用户能够长按 volumeUp 硬件按钮以跳过歌曲,并在短按时执行常规的 volumeUp 操作。

我能够区分两者(我发现 this solution,使用 onKeyDown、onKeyLongPress 和 onKeyUp 之间的标志)但我想知道当音量增大按钮被按下时我是否仍然可以调用标准/ super 操作按下。我似乎无法弄清楚何时调用 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);
}

最佳答案

看看这对你有帮助。

public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();

switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_DOWN && event.isLongPress()) {
//(skipping a song)
}
if (action == KeyEvent.ACTION_UP) {
//(vol up)
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_UP)

return true;
default:
return super.dispatchKeyEvent(event);
}
}

关于android - 如何捕捉 Longpress 并在 KEYCODE_VOLUME_UP 上调用标准操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14958701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com