【问题标题】:Replacing ACTION_SCREEN_ON withy ACTION_USER_PRESENT?用 ACTION USER_PRESENT 替换 ACTION_SCREEN_ON?
【发布时间】:2011-11-19 20:15:45
【问题描述】:

我有一个长期运行的服务来监听传感器输入。为了节省电池电量,我在 ACTION_SCREEN_OFF 上停止了传感器的采样,并在 ACTION_SCREEN_ON 上再次启动它。

不过,我通常只是打开手机以快速浏览锁定屏幕上的时钟(以检查当前时间),然后再次关闭手机而不解锁手机。在这种情况下,没有理由启动传感器只是为了立即关闭然后再次关闭。

因此,我尝试在我的广播监听器中将 ACTION_SCREEN_ON 替换为 ACTION_USER_PRESENT。除了一种特殊情况外,这很好用:当屏幕关闭并且我立即按下电源按钮(或主页按钮)时,将跳过锁定屏幕。然后永远不会收到 ACTION_USER_PRESENT,只有 ACTION_SCREEN_ON。

有没有办法让我的广播接收器在收到 ACTION_SCREEN_ON 后知道屏幕锁定是否处于活动状态并期待稍后出现 ACTION_USER_PRESENT?或者如果锁屏被跳过,不等待 ACTION_USER_PRESENT 并立即重新开始采样?

【问题讨论】:

    标签: android android-sensors


    【解决方案1】:

    直到 Android 4.4,如果屏幕打开并且锁屏被禁用,只有 ACTION_SCREEN_ON 被触发。从 Android 5.0 开始,在这种情况下,ACTION_SCREEN_ON 和 ACTION_USER_PRESENT 都会被触发。

    【讨论】:

    • ACTION_USER_PRESENT的行为变化参考吗?
    猜你喜欢
    • 2016-11-10
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多