2010-09-28 13 views

Respuesta

4

Debe usar el KeyGuardManager para desbloquear el dispositivo automáticamente y luego adquirir su Wake Lock.

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

Gracias que funciona – Jason

10

para mostrar la actividad sin descartar el bloqueo de teclas intente esto:

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

Gracias He encontrado que esto 2, Es la mejor solución, pero sólo si se utiliza Android 2.0 + – Jason

+0

bastante hacky, pero hace lo que debe! – bofredo

2

Para mostrar una ventana emergente en la parte superior de una pantalla de bloqueo probar esto, desde mi otra answer:

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

Para mostrar actividad en la parte superior de una pantalla de bloqueo, o básicamente eliminar la pantalla de bloqueo cuando se inicia la actividad, intente esto:

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

Ambas opciones requieren API 5+

Cuestiones relacionadas