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