如何在android中捕获长按音量下调键?

时间:2011-03-11 06:19:44

标签: android

只是想知道是否有人能告诉我如何捕获android中音量降低键的长按键。

详述问题:

我想创建一个 BroadcastReceiver ,它将接收音量长按键事件。 (没有任何UI交互)。我知道搜索按钮是可能的。是否可用于音量键?

由于

4 个答案:

答案 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 applicationHow can I manage audio volumes sanely in my Android app?

之前已经讨论过,基本上,密钥具有不应被覆盖的默认行为,因为它可以“破坏卷密钥的行为”。

答案 3 :(得分:0)

尝试使用此命令

adb shell输入keyevent --longpress KEYCODE_VOLUME_DOWN