我在我的应用程序中使用 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
因此,即使您发送短信或拨打设备会导致
- 设备屏幕打开
- 设备振动
但是因为如果以编程方式设置为空闲模式,它会持续保持在相同的状态。