【发布时间】:2016-05-29 15:07:33
【问题描述】:
对于这个问题,我将引用另一个没有回答他们的问题的用户:
我编写了一个将硬件音量按钮用于其他目的的 Andoid 应用。
如果应用程序正在运行且可见,它工作正常,但是当我打开 屏幕关闭或让它超时,按钮点击不会进入我的 处理程序。
有谁知道是否有办法检测这些按钮点击 屏幕关闭了? 来源:AV695's question
我自己正在开发一个使用音量按钮的应用程序,但正如该用户还指出的那样,一旦屏幕关闭,使用 onKeyPress 检查按钮的正常行为就会停止工作。这是因为 Activity 在屏幕关闭时暂停。
有没有办法在屏幕关闭时保持活动运行,或者在屏幕关闭时检查音量按钮的使用情况?我之前尝试过为此使用服务,但无法像 Commonsware 指出的那样检查音量键。
【问题讨论】:
-
您是否有任何似乎可以做到这一点的例子,这表明它甚至是可能的?除了应用程序 CPU 正在运行但屏幕关闭的有限情况之外,是否有任何迹象表明内核被唤醒并意识到该键已被按下这一事实?如果不是硬件或至少需要无线电固件模块。只有当/当内核知道关键事件时,它才会成为说服平台让你的代码知道它的问题。
-
很遗憾我没有。我唯一能想到的就是媒体播放器。我开始相信我的想法很简单(检查通知而不必从口袋里拿出手机,只需按下音量按钮,如果您有待处理的通知,设备就会振动)很简单创建太复杂。
-
如果状态栏中有新通知(包括来自 3rd 方应用的自定义通知),LED 通常不会闪烁吗?
-
是的,但这是一个自定义请求,由某个懒得从口袋里拿出手机来检查通知的人提出。听起来很简单,但结果却相当棘手。
-
注册处理程序应该可以工作,但我认为这是特定于平台的错误。也许在 2.1 以下的设备上无法工作。但是姜饼及以上的工作