我有一个长期运行的服务来监听传感器输入。为了节省电池电量,我在 ACTION_SCREEN_OFF 上停止了传感器的采样,并在 ACTION_SCREEN_ON 上再次启动它。
但是,通常我只是打开手机以快速浏览锁定屏幕上的时钟(以检查当前时间),然后再次将其关闭而不解锁手机。在这种情况下,没有理由启动传感器只是为了立即关闭然后再次关闭。
因此,我尝试在我的广播监听器中用 ACTION_USER_PRESENT 替换 ACTION_SCREEN_ON。除了一种特殊情况外,这很好用:当屏幕关闭并且我立即按下电源按钮(或主页按钮)时,将跳过锁定屏幕。然后永远不会收到 ACTION_USER_PRESENT,只有 ACTION_SCREEN_ON。
有没有办法让我的广播接收器在收到 ACTION_SCREEN_ON 后知道屏幕锁定是否处于活动状态并期待稍后出现 ACTION_USER_PRESENT?或者如果锁定屏幕被跳过,不等待 ACTION_USER_PRESENT 并继续并立即重新开始采样?