3

我在我的应用程序中使用 Android 打盹模式,只想检查我的应用程序在打盹模式下的行为。

我的应用程序在打瞌睡模式下将一些任务排入作业调度程序。我想检查是否有任何事件唤醒设备,触发我的应用程序在打瞌睡时放入作业调度程序的作业。

我通过触发以下命令以编程方式将设备置于打盹模式 -

adb shell dumpsys battery unplug 
adb shell dumpsys deviceidle enable 
adb shell dumpsys deviceidle force-idle

我还尝试了另一组命令将其置于打盹模式

adb shell dumpsys deviceidle step deep

上述命令将设备置于深度空闲模式,我使用命令检查它 -

adb shell dumpsys deviceidle get deep

输出:空闲

但即使我打了一个电话,打开设备屏幕并振动设备,设备状态也不会改变。上面的命令连续给我 IDLE 状态。

问题:

我可以模拟我将设备置于瞌睡状态(通过触发一些命令)然后设备将通过 android doc 声明的某些事件(移动它、打开屏幕或连接充电器)来打瞌睡的场景吗? )。

编辑

我做了很多研究后的观察-

当我们将设备编程为进入深度空闲模式时,除非使用命令明确完成,否则设备不会退出打盹模式 -

adb shell dumpsys deviceidle disable

因此,即使您发送短信或拨打设备会导致
- 设备屏幕打开
- 设备振动

但是因为如果以编程方式设置为空闲模式,它会持续保持在相同的状态。

4

1 回答 1

0

我相信问题在于您正在使用强制空闲。

当您这样做时,设备将进入空闲模式,直到您使用以下命令“取消强制”它:

adb shell dumpsys deviceidle unforce

您可以在文档或其他问题中检查从 adb 进入 IDLE 模式的替代方法,如下所示:

如何在打盹模式下移动设备(Android Preview M / Marshmallow)?

于 2018-09-27T17:38:38.950 回答