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