how to capture long press volume down key in android?

后端 未结 4 1213
暖寄归人
暖寄归人 2021-01-18 03:39

Just wondering whether anyone could tell me how to capture the long keypress of the volume down key in android.

Elaborated question:

I wanted to create a

相关标签:
4条回答
  • 2021-01-18 04:25

    may be below code will help you:

    @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);
    }
    
    0 讨论(0)
  • 2021-01-18 04:26

    Try with this command

    adb shell input keyevent --longpress KEYCODE_VOLUME_DOWN

    0 讨论(0)
  • 2021-01-18 04:44

    Note that to handle onKeyLongPress() you should track event onKeyDown(). and override both of them. please note the following examples.

     @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);
    }
    

    Also note that onKeyDown by default returns false. So by triggering onKeyDown() volume won't be increased.

    0 讨论(0)
  • 2021-01-18 04:45

    I think that it is in theory possibly to accomplish the capturing of long key presses of the volume button, but is ill advised. The process would involve overriding the onKeyLongPress() method.

    As to why it is ill advised: Volume Control in android application and How can I manage audio volumes sanely in my Android app?

    It has been discussed before and basically, the keys have default behaviors that should not be overwritten because it is possible to "break the behavior of the volume keys".

    0 讨论(0)
提交回复
热议问题