0

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

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();

    }

}
4

2 回答 2

1

确保你有WAKE_LOCK权限(检查你的AndroidManifest.xml)。

于 2010-08-13T08:47:56.060 回答
0

您使用接收方法的上下文来获取电源管理器,我认为这是意图发送者的上下文,因此请使用应该工作的应用程序的上下文。

于 2010-08-13T08:00:30.467 回答