2010-09-28 7 views

Antwort

4

Sie sollten die KeyGuardManager verwenden, um das Gerät automatisch zu entsperren und dann Ihre Wake Lock zu erwerben.

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

Thankyou, die – Jason

10

Aktivität Um zu zeigen, ohne die Tastensperre aktiviert diese Abweisung versuchen:

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

Dank arbeitet ich diese 2 gefunden haben, ist es die bessere Lösung, aber nur, wenn Sie 2.0 + – Jason

+0

ziemlich hacky Android verwenden, aber es tut, was es soll! – bofredo

2

ein Pop-up auf einem Bildschirm sperren Um dies zu zeigen versuchen, aus meiner anderen answer:

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

zu Zeigen Sie die Aktivität oben auf einem Sperrbildschirm an oder entfernen Sie den Sperrbildschirm, wenn die Aktivität gestartet wird. Versuchen Sie Folgendes:

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

Diese beiden Optionen erfordern api 5+

Verwandte Themen