2

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

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

1) 如果设备移动但屏幕保持关闭,则处于打盹模式。设备会退出打盹模式以进行移动吗?

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

4

2 回答 2

4
  1. 当然,设备会离开打盹模式。因为如Android Doze docs中所写,设备将处于打盹模式,只有当它是静止的时。
  2. 有两种类型的传感器。

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

    加速度计和陀螺仪是非唤醒传感器,因此它们将被停止。从Android 传感器类型页面。

于 2020-06-01T12:51:51.170 回答
1

这个问题问得好。首先,请注意打盹模式有两种状态:浅和深。

1)有可能。首先进入深度打盹模式,“step”命令处于 idle_maintenance 状态。之后直接摇晃手机。如果您打印历史记录(请参见下面的命令),您将看到:

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

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

这些是我用来进入深度打盹模式的命令。

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

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

adb shell dumpsys deviceidle
于 2019-11-20T15:07:54.253 回答