我正在开发一个 Android 应用程序,它可以拦截按下的硬件按钮并对他们的压力进行 REST 调用。我必须拦截的按钮是一键通 (PTT) 按钮,因此不是常规按钮,例如电源按钮或音量按钮。
当应用程序在前台运行时,我使用方法 onKeyDown (int keyCode, KeyEvent event)。PTT 按钮作为标识符,编号为 27,然后在方法中我编写了以下代码行:
if (keyCode == 27) {// 我按下了 PTT 键}
这一切都完美无缺。
但现在我在后台发送应用程序(使用函数 moveTaskToBack(true);),当我按下 PTT 按钮时,我会拦截它。
我知道BroadcastReceiver,IntentFilter 和Service,但是,它们允许您拦截有限的意图动作(例如intent.action.SCREEN_OFF 或其他正常动作),其中无法找到PTT 按钮的压力。
有什么方法可以在应用程序在后台时拦截 PTT 按钮?
谢谢