我正在尝试在广播接收器中获取唤醒锁定,以便我的闹钟应用程序可以将手机从睡眠中唤醒。它崩溃在下面代码中的以下行:
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();
}
}
答案 0 :(得分:1)
确保您拥有WAKE_LOCK
权限(请检查AndroidManifest.xml
)。
答案 1 :(得分:0)
您使用receive方法的上下文来获取power manager,我认为这是intent的发送者的上下文,因此请使用应该运行的应用程序的上下文。