Skip to content Skip to sidebar Skip to footer

How To Capture Long Press Volume Down Key In Android?

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 BroadcastReceiver which wi

Solution 1:

may be below code will help you:

@OverridepublicbooleanonKeyLongPress(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
     // to your stuff herereturntrue;
  }
  returnsuper.onKeyLongPress(keyCode, event);
}

Solution 2:

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();
        returntrue;
    }
    return super.onKeyDown(keyCode,event);
}
 @Override
public boolean onKeyLongPress(int keyCode,KeyEvent event){
    if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){
        //Do your stuff herereturntrue;
    }
    return onKeyLongPress(keyCode,event);
}

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

Solution 3:

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".

Solution 4:

Try with this command

adb shell input keyevent --longpress KEYCODE_VOLUME_DOWN

Post a Comment for "How To Capture Long Press Volume Down Key In Android?"