What I'm basically trying to achieve is custom global hot keys or in other words 'things will happen when I push certain buttons no matter which program is currently on top'.
I assume a service is needed.
I have a quick and dirty test that just tells me what has been pressed that will work if it is the active window.
public boolean onKeyDown(int keyCode, KeyEvent event) {
char pop;
pop = (char)event.getUnicodeChar();
Toast.makeText(this, Character.toString(pop) , Toast.LENGTH_SHORT).show();
return super.onKeyDown(keyCode, event);
}
But obviously if I change window or go into a text box it doesn't work. If I stick it directly into a service (or an imputmethodservice) and launch said service nothing happens. (Some permissions required maybe?) Any suggestions where I'm going wrong? Or a better way of capturing which button is pressed?
Thanks!
This requires Lollipop (v5.0/API 21) or higher
My goal was to adjust system volume from a Service, so this will only listen for the rocker. Any action can be taken on press though.
It will override volume key action, so using it globally may not be desired.
You cannot do this :)