用于运动传感器的Android Doze模式

时间:2016-11-07 00:30:17

标签: android exit sensor motion android-doze

我有与Android Doze Mode(Android N [deep doze]和M)相关的问题。根据Android官方文档,一旦设备进入打盹模式,它就会停止通过GPS或网络接收位置更新。

要退出打盹模式,要么屏幕打开,要么插上电源。但是怎么样

1)在打盹模式下,如果移动设备但屏幕保持关闭状态。设备会退出打盹模式进行移动吗?

2)在打盹模式下,陀螺仪或加速度计等传感器是否正在工作或停止?

2 个答案:

答案 0 :(得分:3)

  1. 当然,设备将退出打ze模式。因为如Android Doze docs所述,设备只有在静止的情况下才会处于打ze模式。
  2. 传感器有两种。

    • 唤醒传感器:确保独立于SoC状态传递其数据。
    • 非唤醒传感器:不要阻止SoC进入挂起模式,也不要唤醒SoC来报告数据。

    加速度计和陀螺仪是非唤醒传感器,因此将被停止。从Android Sensor Type页开始。

答案 1 :(得分:0)

这是一个很好的问题。首先,请注意打ze模式有两种状态:浅和深。

1)可能。首先,使用“ step”命令进入深度打ze模式,使其处于idle_maintenance状态。然后,直接摇动手机。如果打印历史记录(请参见下面的命令),则会看到以下内容:

  • 深空转:-23s222ms
  • 深度维护:-16s621ms
  • 正常:-12s431ms(运动)

2)当使用adb强制打ze模式时,传感器仍在进行采集。这是肯定的。但仍不确定此强制模式是否与让设备本身进入打ze模式完全相似。

这些是我用于在深度打ze模式下输入的命令。

adb shell dumpsys battery unplug
adb shell dumpsys deviceidle step deep
[... each time you change the state of deep mode - several states]
adb shell dumpsys battery reset

您还可以通过输入以下命令来检查打ze模式的参数和历史记录:

adb shell dumpsys deviceidle