是否有任何方法可以通过使用服务来拦截硬键以启动活动?
换句话说:是否可以处理服务中的KeyEvents?
答案 0 :(得分:4)
除了当前活动的应用程序之外,没有任何通用方法可以侦听硬件键的关键事件。
只能通过广播Intent
检测到CAMERA按钮事件。
当按下CAMERA按钮时,ACTION_CAMERA_BUTTON会被广播,并且不会被前景活动拦截:developer.android.com/reference/android/content/…
这意味着如果前台中的应用程序没有按下按键,您只能检测到按下。
答案 1 :(得分:2)
是。您可以使用InputMethodService捕获KeyEvents。硬键有自己的密钥代码,就像软键一样。
查看谷歌制作的SoftKeypad示例。