3

我有一项服务可以检测我的 Android 手机的显示屏何时打开或关闭。关闭时,该服务会调用一个活动,该活动使用 dispatchKeyEvent 来检测何时按下音量增大按钮。不幸的是,当屏幕关闭时,活动显然无法执行此操作。(见这篇文章。)

不过,我注意到,某种程度的东西正在检测该事件,因为当我在屏幕关闭时按下音量增大按钮时会出现以下 LogCat 消息:“CatService:返回当前 sInstance”。该消息似乎是特定于设备的,因为在不同的设备上,日志中会出现不同的内容,但我真的只关心第一个设备。

我对 CatService 进行了一些研究,但没有发现太多,也无法弄清楚如何使用它或生成日志消息的任何东西来检测音量增大按钮的按下情况。我很感激任何人都可以对此有所了解。

4

1 回答 1

4

在屏幕关闭时继续检测此类事情的唯一方法是获取一个唤醒锁,它允许屏幕关闭,并且仍然让您的应用程序运行。但是,这会极大地消耗电池寿命,并且只能在绝对必要时使用。

在这种情况下,您将需要一个PARTIAL_WAKE_LOCK

于 2012-07-01T17:17:32.010 回答