android - onKeyDown 在服务中? (全局热键)

标签 android onkeydown

我基本上想要实现的是自定义全局热键,或者换句话说,“无论当前哪个程序在顶部,当我按下某些按钮时,事情都会发生”。
我认为需要一项服务。

我有一个快速而肮脏的测试,它只是告诉我按下了什么,如果它是 Activity 窗口,它将起作用。

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);
  }

但显然,如果我更改窗口或进入文本框,它就不起作用。如果我将它直接粘贴到服务(或 imputmethodservice)中并启动所述服务,则不会发生任何事情。 (可能需要一些权限?) 有什么建议我哪里出错了吗?还是捕捉按下哪个按钮的更好方法?

谢谢!

最佳答案

你不能这样做:)

关于android - onKeyDown 在服务中? (全局热键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454710/

相关文章:

android - 我可以在运行时以编程方式设置 "android:layout_below"吗?

android - 如何使用 Robolectric 测试 Application 类?

java - 使用Gson以自定义方式将Date对象序列化为JSON(注释)

javascript - 有没有不使用 scroll() 或 scrollTo() 就可以设置窗口滚动位置的方法?

Javascript - 如何避免键盘键的重复使用

javascript - onkeydown 在 Greasemonkey 中不起作用

android - 如何在排列的颜色中设置按钮背景?

android - 滚动时编辑文本失去焦点

c# - 按键延迟

jquery - 使用 jquery 检测扫描仪输入