我正在我的应用程序中玩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产出:闲置
但是,即使我打了一个电话,打开设备屏幕并震动设备,设备状态也不会改变。上面的命令连续给我空闲的状态。
问题:
我能模仿一下这样的场景:我把设备打瞌睡(通过发射一些命令),然后设备会被android文档声明的一些事件(移动它、打开屏幕或连接一个充电器)从打瞌睡中移出。
编辑
我做了很多研究后的观察-
当我们编程一个设备进入深度空闲模式时,该设备不会脱离打瞌睡模式,除非使用以下命令显式完成-
adb shell dumpsys deviceidle disable因此,即使您发送一条短信或调用设备,这将导致
但是,因为如果是以编程方式设置为空闲模式,则它将继续保持相同的状态。
发布于 2018-09-27 17:38:38
我相信问题是你在使用武力。
当您这样做时,设备进入空闲模式,直到您用以下方式“解除”它:
adb shell dumpsys deviceidle unforce您可以在docs或其他问题中检查从adb进入空闲模式的其他方式,如下所示:
How to shift device in Doze Mode (Android Preview M / Marshmallow)?
https://stackoverflow.com/questions/52542137
复制相似问题