Search code examples
androidbrightness

Change brightness screen with volume keys in Android


I want to change the brightness of screen with volume keys. I used this code, but it doesn't work:

@Override
    public boolean onKeyDown(int keyCode,KeyEvent keyEvent){
        WindowManager.LayoutParams layout = getWindow().getAttributes();

        if(keyEvent.getAction() == KeyEvent.ACTION_DOWN){
            switch (keyCode){
                case KeyEvent.KEYCODE_VOLUME_DOWN:
                    layout.screenBrightness -= 0.1;
                    getWindow().setAttributes(layout);
                    break;
                case KeyEvent.KEYCODE_VOLUME_UP:
                    layout.screenBrightness += 0.1;
                    getWindow().setAttributes(layout);
                    break;
            }

        }
        return super.onKeyDown(keyCode , keyEvent);
    }

When I press volume key down/up ringer volume is changed?


Solution

  • Try this one :

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
        switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_UP) {
                //TODO
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                //TODO
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
        }
    }
    

    It's from here. Try to search better next time.