1

有没有办法判断 Android 设备何时处于睡眠模式?测试我的应用程序时,我按下电源按钮关闭屏幕,需要等到睡眠模式激活。然后,我使用 Google Cloud Messaging (GCM) 向我的设备发送消息,然后在消息到达后播放声音和通知。但是,如果我在睡眠模式激活之前发送此消息,那么我不确定它是否收到了该消息,因为它还活着,或者因为我的服务例程已由 GCM 广播接收器启动。

4

4 回答 4

1

您可以使用意图找出屏幕何时熄灭,android.intent.action.SCREEN_OFF但据我所知,没有意图确定设备是否处于睡眠模式。

于 2013-07-09T09:11:58.180 回答
1

没有确定的方法可以知道设备是否处于睡眠状态。但是考虑到在睡眠模式下设备应该以最低频率运行并且 CPU 消耗应该是最小的,我们可以做出有根据的猜测。

要查找我们可以cat /sys/devices/system/cpu/cpu0/cpufreq从 adb shell 使用的设备的当前频率并查找 cpu 使用情况,请查看此链接:Get Memory Usage in Android

我不确定这些查询本身是否会唤醒设备。

于 2013-07-09T10:48:06.883 回答
0

您无法在应用程序级别进行判断,因为当设备处于睡眠状态时,cpu 停止工作并且您的任何代码都没有执行。

于 2014-04-30T19:54:50.510 回答
0

您可以使用信息量很大的 dumpsys 命令来查找它。

这是一个单行 adb 命令:

adb shell 'if [ -z $(dumpsys power | grep mScreenOn=true) ]; then echo off; else echo ON; fi'

于 2014-12-01T01:06:43.887 回答