我正在我的应用程序中使用Android打ze模式,只是想检查我在打ze模式下应用程序的行为。
在打ze模式下,我的应用程序使作业调度程序中的某些任务排队。我想检查是否有任何事件唤醒设备,从而触发我的应用程序在打ze睡时放置在作业计划程序中的作业。
我通过触发以下命令以编程方式将设备置于打ze模式-
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle enable
adb shell dumpsys deviceidle force-idle
我还尝试了另一组命令将其置于打ze模式
adb shell dumpsys deviceidle step deep
以上命令将设备置于深度空闲模式,我使用命令
进行检查adb shell dumpsys deviceidle get deep
输出:空闲
但是,即使我打了个电话,这会打开设备屏幕并振动设备,设备状态也不会改变。上面的命令连续给我IDLE状态。
问题:
我可以模拟将设备置于休眠状态(通过触发一些命令),然后由于android文档所声明的某些事件(移动设备,打开屏幕或连接充电器)。
编辑
经过大量研究后的观察结果-
当我们将设备编程为进入深度空闲模式时,除非使用命令明确完成操作,否则设备不会退出休眠模式。
adb shell dumpsys deviceidle disable
因此,即使您发送短信或致电设备也会导致
-打开设备屏幕
-振动的设备
但是因为如果以编程方式将其设置为空闲模式,则它将连续保持在相同状态。
答案 0 :(得分:0)
我相信问题在于您使用的是强制怠速。
执行此操作后,设备将进入“空闲”模式,直到通过以下方式“取消强制”它:
adb shell dumpsys deviceidle unforce
您可以在文档中或其他问题中检查从adb进入IDLE模式的其他方法,例如:
How to shift device in Doze Mode (Android Preview M / Marshmallow)?