2013-07-09 71 views
1

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

+0

这可能帮助:http://stackoverflow.com/questions/15620139/when-android-device-goes-to-sleep-mode – Jong

回答

1

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

1

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

要查找设备的当前频率,我们可以使用cat /sys/devices/system/cpu/cpu0/cpufreq亚行外壳和发现CPU的使用率看看这个链接:Get Memory Usage in Android

我不知道但如果这些查询将自己唤醒设备。

0

你不能在应用程序级别上知道,因为当设备处于睡眠状态时,CPU停止工作,并且没有任何代码正在执行。

0

您可以使用非常丰富的dumpsys命令来查找它。

这里是一个班轮ADB命令:

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

相关问题