【问题标题】:Android Doze mode for motion sensors适用于运动传感器的 Android 打盹模式
【发布时间】:2017-03-20 06:21:25
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android exit sensors motion android-doze


    【解决方案1】:
    1. 当然,设备将离开打盹模式。因为正如Android Doze docs 中所写,设备将处于打盹模式,只有在它静止时。
    2. 有两种类型的传感器。

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

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

    【讨论】:

    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      相关资源
      最近更新 更多