Проблема с обнаружением блокировки слежения от широковещательного приемника

У меня проблема. Я пытаюсь заставить приемник вещания получить блокировку слежения, поэтому мой будильник разбудит телефон из спящего режима.

В нижеприведенном широковещательном приемнике программа сбой «источник не найден» в строке «sCpuWakeLock.acquire (), когда класс AlarmAlertWakeLock вызывается AlarmReceiver. Любая идея, что происходит? Есть ли лучший способ сделать то, что я Я пытаюсь это сделать?

В одном файле:

import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { AlarmAlertWakeLock.acquireCpuWakeLock(context); } } 

В отдельном файле:

 import android.content.Context; import android.os.PowerManager; public class AlarmAlertWakeLock { private static PowerManager.WakeLock sCpuWakeLock; static void acquireCpuWakeLock(Context context) { if (sCpuWakeLock != null) { return; } PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); sCpuWakeLock = pm.newWakeLock( PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP,"okTag"); sCpuWakeLock.acquire(); } static void releaseCpuLock() { if (sCpuWakeLock != null) { sCpuWakeLock.release(); sCpuWakeLock = null; } } } 

    Ничего, я понял это – мне нужно было добавить разрешение на пробуждение в манифест:

    Use-permission android: name = "android.permission.WAKE_LOCK"

    Прекрасно работает!