2013-04-07 12 views
5

Per favore, aiutatemi. Ho un ricevitore trasmissione:Come svegliare Android e mostrare l'attività?

public class BrcRec extends BroadcastReceiver{ 
public static WakeLock wakeLock; 
@Override 
public void onReceive(Context context, Intent intent) { 


    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
    wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); 
    wakeLock.acquire(); 
    //Осуществляем блокировку 
    KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); 
    KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); 
    keyguardLock.disableKeyguard(); 


    //Здесь можно делать обработку. 
    Bundle extras = intent.getExtras(); 
    StringBuilder msgStr = new StringBuilder(); 

    msgStr.append("Одноразовый будильник: "); 
    Format formatter = new SimpleDateFormat("hh:mm:ss a"); 
    msgStr.append(formatter.format(new Date())); 
    // Creating activity must be there, i think 
    Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show(); 
    //Разблокируем поток. 
    wakeLock.release(); 
} 

E poi è nel lavoro, il mio Android non si svegliano: pulsante lampeggia una volta e questo è tutto. Dov'è un errore?

Voglio svegliare Android e chiamare qualche attività nel risultato .. Grazie.

risposta

14

nell'attività che si desidera mostrare si può aggiungere questi flag:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
       WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
       WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
       WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

che causerà l'attività di riattivare il dispositivo.

2

Vale la pena notare che ciò che "joelreeves" ha scritto funziona anche senza utilizzare le API di PowerManager e Wakelock. Semplicemente aggiungendo i flag sul onCreate dell'attività, ogni volta che si avvia, rimuoverà completamente Keyguard e Lock dal telefono.

Problemi correlati