Android - 从广播接收器获取保持锁定

时间:2010-08-13 07:22:42

标签: android sleep clock alarm wakeup

我正在尝试在广播接收器中获取唤醒锁定,以便我的闹钟应用程序可以将手机从睡眠中唤醒。它崩溃在下面代码中的以下行:

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");

任何想法发生了什么? 有一个更好的方法吗? 谢谢!

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.os.PowerManager;

public class RepeatingAlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) { 
         AlarmAlertWakeLock.acquireCpuWakeLock(context);
         PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
         wl.acquire();

    }

}

2 个答案:

答案 0 :(得分:1)

确保您拥有WAKE_LOCK权限(请检查AndroidManifest.xml)。

答案 1 :(得分:0)

您使用receive方法的上下文来获取power manager,我认为这是intent的发送者的上下文,因此请使用应该运行的应用程序的上下文。