只是想知道是否有人能告诉我如何捕获android中音量降低键的长按键。
详述问题:
我想创建一个 BroadcastReceiver ,它将接收音量长按键事件。 (没有任何UI交互)。我知道搜索按钮是可能的。是否可用于音量键?
由于
答案 0 :(得分:7)
可能会在代码下方为您提供帮助:
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
// to your stuff here
return true;
}
return super.onKeyLongPress(keyCode, event);
}
答案 1 :(得分:3)
请注意,要处理onKeyLongPress(),您应该跟踪事件onKeyDown()。并覆盖它们。 请注意以下示例。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){
event.startTracking();
return true;
}
return super.onKeyDown(keyCode,event);
}
@Override
public boolean onKeyLongPress(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){
//Do your stuff here
return true;
}
return onKeyLongPress(keyCode,event);
}
另请注意,onKeyDown默认返回false。因此,通过触发onKeyDown(),音量不会增加。
答案 2 :(得分:1)
我认为理论上可能是完成捕捉音量按钮的长按键,但是不明智。该过程将涉及重写onKeyLongPress()方法。
至于为何不明智:Volume Control in android application和How can I manage audio volumes sanely in my Android app?
之前已经讨论过,基本上,密钥具有不应被覆盖的默认行为,因为它可以“破坏卷密钥的行为”。
答案 3 :(得分:0)
尝试使用此命令
adb shell输入keyevent --longpress KEYCODE_VOLUME_DOWN