【发布时间】:2017-01-01 23:41:43
【问题描述】:
我正在开发一个 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按钮?
谢谢
【问题讨论】:
-
Android 没有 PTT 按钮。您需要询问您的设备制造商如何实现此功能。从
onKeyDown()的角度来看,他们似乎在使用KEYCODE_CAMERA,所以也许ACTION_CAMERA_BUTTON会起作用。 -
谢谢,我想象并尝试了各种方式,但都没有成功。我会尝试联系设备制造商。
标签: android keyevent background-application