如何检测屏幕何时开启?

正如前一个问题中所提到的,我很难在没有长期Service情况下拦截所有android.intent.action.SCREEN_ON事件(不鼓励)。

如果我可以在Service中的任何给定时间点亮屏幕时,我可以解决这个问题。

任何人都可以建议一个方法调用,将返回此信息? 1.5以上。

系统故意不允许应用程序在其清单中接收ACTION_SCREEN_ONACTION_SCREEN_OFF广播,因为我们非常不希望启动一堆应用来打开或关闭屏幕。 这是一直发生的事情,必须尽可能快。

不幸的是,正如所指出的那样,没有办法立即检查屏幕是否打开。

PowerManager.isScreenOn()自:API级别7

系统广播ACTION_USER_PRESENT意图可以提供任何帮助吗?

如果您的代码正在运行,屏幕很可能会启动。 主要的例外是你的代码是通过AlarmManager唤醒的。

如果ACTION_SCREEN_ON是一个粘性广播会很好,但似乎并非如此。

如果您可以使用Android 2.1及更高版本进行滚动,则PowerManager现在具有isScreenOn()方法。 好消息是,这是可用的。 坏消息是,由于它是在那里添加的,因此不太可能有任何其他方法可以轻易确定它。 而且,对源代码的快速检查并没有太多希望您可能会破解早期SDK中的信息。