告诉Android设备何时处于睡眠模式

时间:2013-07-09 09:02:36

标签: android sleep

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以使用信息丰富的dumpsys命令进行查找。

这是一个单线adb命令:

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