2013-04-07 14 views
5

Proszę, pomóż mi. Mam odbiornik nadanie:Jak obudzić Androida i pokazać aktywność?

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

I to jest w pracy, mój android nie obudzić: przycisk miga jeden raz i to wszystko. Gdzie jest błąd?

Chcę obudzić Androida i zadzwonić do jakiejś aktywności w wyniku .. Dziękuję.

Odpowiedz

14

W działalności, które chcesz pokazać można dodać te flagi:

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

To spowoduje, że aktywny obudzić urządzenie.

2

Warto zauważyć, że to, co napisał "joelreeves" działa nawet bez korzystania z interfejsów API PowerManager i Wakelock. Po prostu dodając flagi do onCreate działania, po jego uruchomieniu całkowicie usunie blokadę klawisza i blokadę z telefonu.

Powiązane problemy