退出安卓打瞌睡模式



我正在我的应用程序中使用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

因此,即使您发送短信或呼叫设备,也会导致
设备屏幕打开
- 设备

振动但由于 if 以编程方式设置为空闲模式,因此它始终保持在同一状态。

我相信问题是你使用的是强制空闲。

当您这样做时,设备将进入空闲模式,直到您通过以下方式"取消强制"它:

adb shell dumpsys deviceidle unforce

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

如何在打瞌睡模式下切换设备(Android预览M/棉花糖(?

最新更新