如何在代码中检测手机是否处于睡眠模式?

时间:2010-03-01 23:00:47

标签: android

有没有办法检测代码中的Android手机是否处于睡眠模式(屏幕为黑色)? 我写了一个主屏幕小部件。我不希望在屏幕为黑色时更新小部件以节省电池消耗。

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用AlarmManager触发窗口小部件的刷新。在安排下一个周期时,您可以定义是否唤醒您的设备(也就是执行实际任务)。

alarmManager.set(wakeUpType, triggerAtTime, pendingIntent);

答案 1 :(得分:1)

你可以使用带有动作过滤器的广播接收器android.intent.action.SCREEN_ON和android.intent.action.SCREEN_OFF

小例子:

你的接收者:

 public class ScreenOnOffReceiver extends BroadcastReceiver
 {
     @Override
     public void onReceive(Context context, Intent intent) 
     {
         if (intent.getAction().equals(Intent.ACTION_SCREEN_ON))
         {
                      // some code
         }
                 if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
         {
                      // some code
         }
     }
 }

你的清单:

 <receiver android:name=".ScreenOnOffReceiver">
        <intent-filter>
            <action android:name="android.intent.action.SCREEN_ON" />
            <action android:name="android.intent.action.SCREEN_OFF" />
        </intent-filter>
 </receiver>