我基本上试图实现的是自定义全局热键,换句话说,"当我按下某些按钮时会发生某些事情,无论哪个程序当前位于顶部".
我认为需要一项服务.
我有一个快速而肮脏的测试,只是告诉我如果它是活动窗口,那么按下了什么.
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);
}
Run Code Online (Sandbox Code Playgroud)
但显然如果我改变窗口或进入文本框它不起作用.如果我将它直接粘贴到服务(或imputmethodservice)并启动所述服务没有任何反应.(可能需要一些权限吗?)我出错的任何建议?或者更好的方法来捕捉按下哪个按钮?
谢谢!