2013-04-07 10 views
5

Bitte, hilf mir. Ich habe eine Sendung Empfänger:Wie aufwachen Android und zeigen Sie die Aktivität?

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

Und dann ist es in Arbeit, mein android nicht aufwachen: Taste einmal blinken und das ist alles. Wo ist ein Fehler?

Ich möchte Android und rufen Sie einige Aktivität in Ergebnis .. Vielen Dank.

Antwort

14

in der Aktion, die Sie anzeigen möchten, können Sie diese Flags hinzu:

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

, dass die Aktivität bewirkt, dass das Gerät wecken.

2

Es ist erwähnenswert, dass was "Joelreeves" schrieb, funktioniert auch ohne die PowerManager und Wakelock APIs zu verwenden. Durch einfaches Hinzufügen der Flags auf dem onCreate der Aktivität wird das Keyguard und die Sperre bei jedem Start vollständig aus dem Telefon entfernt.

Verwandte Themen