Android 区分屏幕超时和电源按钮按下?

Android 区分屏幕超时和电源按钮按下?,android,android-intent,Android,Android Intent,当屏幕变黑时,我的应用程序会做一些事情,但我希望它只在屏幕“自行”关闭时执行该任务,通过屏幕超时-而不是在用户按下电源按钮时。有没有办法区分这两件事 ACTION\u SCREEN\u OFF显然在这两种情况下都会触发,而且我还没有找到任何其他可能与我正在寻找的内容相匹配的意图。你能收听KEYCODE\u电动键盘事件吗?那可能是你想要的。(但该操作和屏幕关闭的顺序可能无法保证)。在较低级别,屏幕超时时会发生事件,请使用“adb logcat”查看,您将看到它,从那里开始挖掘。服务无法直接处理按钮

当屏幕变黑时,我的应用程序会做一些事情,但我希望它只在屏幕“自行”关闭时执行该任务,通过屏幕超时-而不是在用户按下电源按钮时。有没有办法区分这两件事


ACTION\u SCREEN\u OFF
显然在这两种情况下都会触发,而且我还没有找到任何其他可能与我正在寻找的内容相匹配的意图。

你能收听KEYCODE\u电动键盘事件吗?那可能是你想要的。(但该操作和屏幕关闭的顺序可能无法保证)。

在较低级别,屏幕超时时会发生事件,请使用“adb logcat”查看,您将看到它,从那里开始挖掘。

服务无法直接处理按钮事件。也许你可以让你的活动注册一个广播接收器,在屏幕关闭时收到通知,然后让活动检查最后一个按键是否是电源按钮——如果不是,那么你可以向你的服务发送一个广播,让它运行你想要的任何东西。

这是一个有趣的问题:)虽然不准确,您可以尝试采样自用户上次触摸事件以来的时间和您的活动暂停的时间,并查看它是否符合

您尝试执行的操作是什么?可能还有另一个操作要听。我试图在屏幕超时时执行一个简单的计算,但不是在用户按下电源按钮“强制”关闭屏幕时。一个“超时”动作会很棒,但我还没有发现类似的动作。是否可以查询锁屏是否打开(我相信,这通常只在按下电源按钮时发生,至少在N1上)?为什么只在这种情况下才想这样做?如果你解释一下原因和原因,也许有人能给你一个更好的解决方案。这能帮上忙吗:谢谢,沃普兹特,我来看看!嗨,谢谢你的回答!这是一个好主意,虽然我刚刚尝试了它,但它不起作用,似乎不可能捕捉到该关键代码:而且,我需要在系统范围内注册该关键事件,因为我正在使用一项服务,这也是不可能的,我想:-/但感谢您的帮助,这是一个好主意,如果它起作用,它将是完美的:-!)!谢谢你的回答。我看到了这一点,但我想既然这不是一个公共广播,我就听不到,但我相信如果你说这在理论上是可能的(尽管我想不是用普通的方法),我会在谷歌上找到一些东西。谢谢