Android服务中的关键事件

时间:2011-08-31 13:39:31

标签: android events key

我做了一些研究得出结论,afaik我无法获得关键事件捕获的Android服务。但是 - 也许有些人会有任何解决方法。我有一个播放器应用程序,我想在我的耳机上使用特殊按钮播放/暂停(包含在我的三星Galaxy S中)。这是用于恢复和结束在电话线上设置的电话的按钮。 我已经测试了这个按钮 - 它等于KeyCode.KEYCODE_BUTTON_B const (79)。它可以在我的播放器在屏幕上时处理,但是当我的手机被锁定(屏幕关闭)时我也想播放/暂停。你觉得这有可能吗? 对于呼叫恢复,我认为android使用了一个技巧:当有人呼叫时,屏幕变为活动状态,并且呼叫恢复活动可以处理关键事件(我认为 - 这是它的工作方式,但我可能是错的)。 我不知道 - 如何使用此按钮播放/暂停我的应用程序。

1 个答案:

答案 0 :(得分:0)

我认为没有任何真正好的方法可以从应用程序级别实现您想要做的事情。然而,我能提出的一个可能的解决方案是:

关闭屏幕并关闭意图。当您收到SCREEN_OFF时,启动一个“空白”活动,除了按下按钮并将其传递给您的音乐服务之外什么都不做。 当您收到SCREEN_ON finish()此空白活动时。

我不确定这种方法是否有效,但我使用了类似的功能,可以在屏幕关闭时收听音量按钮。

关于侦听SCREEN_OFF和SCREEN_ON意图的注意事项。当我这样做时,我不得不在java代码中而不是在清单中为我的接收器设置过滤器。出于某种原因,当我从清单中设置了intent过滤器时,它没有正确接收这些意图。