我正在开发一个Android应用程序,该程序拦截按下硬件按钮并向其施加压力的REST调用。我必须拦截的按钮是Push to talk (PTT)按钮,而不是常规按钮,例如电源按钮或音量按钮。
当应用程序在前台运行时,我使用onKeyDown(int keyCode, KeyEvent event)方法。PTT按钮作为标识符,其编号为27,然后在方法中编写以下代码:
if (keyCode == 27) {//我按下了PTT按钮}
所有这些都完美地工作。
但是现在我将应用程序发送到后台(使用moveTaskToBack(true)函数),当我按下PTT按钮时我想要拦截它。
我知道BroadcastReceiver、IntentFilter和Service,但是它们只能拦截有限的意图操作(如intent.action.SCREEN_OFF或其他普通操作),其中无法找到PTT按钮的压力。
是否有任何方法可以在应用程序在后台时拦截PTT按钮?
谢谢
onKeyDown()
的角度来看,它们似乎正在使用KEYCODE_CAMERA
,因此 也许ACTION_CAMERA_BUTTON
可以起作用。 - CommonsWare