2010-08-13 4 views
7

Ho un problema. Sto cercando di far sì che un ricevitore di trasmissione acquisisca un blocco di attivazione, in modo che il mio allarme riattivi il telefono dalla modalità di sospensione.Problema di acquisizione della sveglia dal ricevitore di trasmissione

Nel ricevitore di broadcast di seguito, il programma va in crash con "fonte non trovato" on line "sCpuWakeLock.acquire(); quando la classe 'AlarmAlertWakeLock' è chiamato da AlarmReceiver Qualsiasi idea di quello che sta succedendo C'è una migliore.? modo di fare quello che sto cercando di fare

In un unico file:?

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

    }  
} 

in un file separato:

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; 
     } 
    } 
} 

risposta

4

Non importa, ho capito - avevo bisogno di aggiungere il permesso di blocco scia al manifesto:

usa-autorizzazione android: name = "android.permission.WAKE_LOCK"

funziona bene ora!