Android 是否将“操作”屏幕上的“用户”替换为“操作”?

Android 是否将“操作”屏幕上的“用户”替换为“操作”?,android,android-sensors,Android,Android Sensors,我有一个长期运行的服务监听传感器输入。为了节省电池电量,我已经停止了在ACTION_SCREEN_OFF上对传感器的采样,并在ACTION_SCREEN_on上重新启动 然而,通常我只是打开手机快速浏览锁屏上的时钟(查看当前时间),然后在不解锁手机的情况下再次关机。在这种情况下,没有理由启动传感器只是为了立即关闭然后再次关闭 因此,我尝试用广播侦听器中的ACTION用户替换ACTION屏幕。除了一种特殊情况外,这种方法工作得很好:当屏幕关闭时,我立即按下电源按钮(或主页按钮),锁定屏幕被跳过。然

我有一个长期运行的服务监听传感器输入。为了节省电池电量,我已经停止了在ACTION_SCREEN_OFF上对传感器的采样,并在ACTION_SCREEN_on上重新启动

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

因此,我尝试用广播侦听器中的ACTION用户替换ACTION屏幕。除了一种特殊情况外,这种方法工作得很好:当屏幕关闭时,我立即按下电源按钮(或主页按钮),锁定屏幕被跳过。然后,将永远不会收到当前的操作用户,只会打开操作屏幕

有没有办法让我的广播接收器在接收到动作屏幕打开时知道屏幕锁定是否处于活动状态,并期待动作用户稍后出现?或者,如果跳过锁定屏幕,则不等待操作用户出现并立即继续并重新启动采样

我有一个长期运行的服务监听传感器输入

请记住,用户不喜欢“长时间运行的服务”,除非您使用的是
startForeground()
,否则Android可能会关闭您的服务

我已经停止了动作屏幕上传感器的采样,并在动作屏幕上重新开始采样

除非您使用的是
唤醒锁
,否则在注册传感器侦听器时,设备仍应处于休眠状态。我不确定你是否通过
动作屏幕关闭
/
动作屏幕打开
之类的东西获得了什么

有没有办法让我的广播接收器在接收到动作屏幕打开时知道屏幕锁定是否处于活动状态,并期待动作用户稍后出现


您可以在
KeyguardManager
上尝试
inKeyguardRestrictedInputMode()
。这看起来应该能用,尽管我还没有试过。

在Android 4.4之前,如果屏幕打开并且锁定屏幕被禁用,那么只有ACTION\u screen\u on启动。Frm Android 5.0,在这种情况下,ACTION_SCREEN_ON和ACTION_USER_PRESENT都被解雇。

我可以发誓,日志上说屏幕关闭时它仍在翻滚,但可能是我错了,或者可能是我太不耐烦了,没有给手机时间让它完全入睡——我会做更多的实验。与此同时,我尝试了inKeyguardRestrictedInputMode(),但不幸的是,它不起作用。谢谢你的回复!事实上,我的手机从不睡觉…我一直在快速消耗电池(事实上:)-但我确实一直在后台运行活动连接-也许这会让我的传感器保持清醒?!有关于用户行为改变的参考资料吗?