How to handle ClickEvent for handset buttons in Android

There’s a simpler way which doesn’t require any BroadcastReceiver to be registered if you only want to listen for headset button callbacks while your app (particular activity) is running, simply override Activity onKeyDown method:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_HEADSETHOOK){
        //handle click
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

For more extended implementation use ACTION_MEDIA_BUTTON intent.

Leave a Comment