2010-09-28 12 views

Odpowiedz

4

Powinieneś użyć KeyGuardManager, aby odblokować urządzenie automatycznie, a następnie uzyskać blokadę Wake.

KeyguardManager kgm = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
    boolean isKeyguardUp = kgm.inKeyguardRestrictedInputMode(); 
    KeyguardLock kgl = kgm.newKeyguardLock("Your Activity/Service name"); 

    if(isKeyguardUp){ 
    kgl.disableKeyguard(); 
    isKeyguardUp = false; 
    } 

    wl.acquire(); //use your wake lock once keyguard is down. 
+0

Dziękuje który działa – Jason

10

Aby pokazać aktywność bez odwoływania zablokowanej klawiaturze spróbuj tego:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
setContentView(); 
+0

Dzięki Znalazłem 2, to jest to lepsze rozwiązanie, ale tylko jeśli używasz Android 2.0 + – Jason

+0

całkiem hacky, ale robi to co powinien! – bofredo

2

Aby wyświetlić okienko na górze ekranu blokady spróbować tego, od mojej drugiej answer:

AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
     alertDialog.getWindow().setType(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
     alertDialog.show(); 

Do pokaż działanie na górze ekranu blokady lub w zasadzie usuń ekran blokady po uruchomieniu aktywności, spróbuj tego: spróbuj wykonać następujące czynności:

public void onCreate(Bundle savedInstanceState){ 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
    ... 
} 

Obie te opcje wymagają API 5+

Powiązane problemy