Spanish ¿Cómo desactivar temporalmente la pantalla de bloqueo?

Gabino A. de la Gala

Well-Known Member
Licensed User
Longtime User
Muy buenas.

Me gustaría saber si es posible desactivar temporalmente la pantalla de bloqueo. Por ejemplo cuando estamos conectados a la wifi de casa o del trabajo, etc.

¿Alguna pista por dónde empezar?

Gracias anticipadas.
 

DATASOFT (SOLUSOFT S A)

Member
Licensed User
Longtime User
con temor a equivocarme te podría decir que "no" es posible sin embargo; en lo que he leído lo que recomienda la mayoría es generar un servicio en el que podrías verificar si el wifi esta on o alguna otra condición de tu agrado para mantener on el dispositivo
tuto de servicios
http://www.b4x.com/android/forum/threads/service-modules.7542/
este es un ejempla-so en ingles
http://www.b4x.com/android/forum/threads/alarm-with-simple-task-reminder.29379/
sino me equivoco el señor Espinosa4 utilizo esta metodología si sigues su hilo de post tendrás mas ideas ;)
http://www.b4x.com/android/forum/threads/desde-el-background-al-foreground.31979/
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Gabino:

Si que es posible hacerlo, siempre y cuando no tengas contraseña en la pantalla de bloqueo.
MUY IMPORTANTE: se tiene que hacer desde un formulario activo, no se puede desde un servicio o módulo de clase. Puedes llamarlo desde un servicio o un módulo de clase teniendo el sub de Bloqueo/Desbloqueo en un formulario y haciendo un CallSubDelayed .
Te paso unos Subs que he creado que te serviran para saber si esta bloqueada, y en el caso que lo esté, con otra la puedes desbloquear, y una siguiente para bloquearla si quieres.


B4X:
Sub ComprobarBloqueoPantalla As Boolean

   r.Target = r.GetContext
   r.Target = r.RunMethod2("getSystemService", "keyguard", "java.lang.String")
   Return  r.RunMethod("inKeyguardRestrictedInputMode")

End Sub



Sub DesbloquearPantallaBloqueo
 
    r.Target = r.GetActivity
    r.Target = r.RunMethod("getWindow")
    r.RunMethod2("addFlags", 6815872, "java.lang.int")
     
End Sub



Sub BloquearPantallaBloqueo
    ' volver a bloquear pantalla (poner como estaba)
    r.Target = r.GetActivity
    r.Target = r.RunMethod("getWindow")
    r.RunMethod2 ("clearFlags", 0, "java.lang.int")
End Sub

El "ComprobarBloqueoPantalla" te devuelve True o False, asi que puedes hacer algo asi:

B4X:
If WifiActivo then
  PantallaBloqueada  = ComprobarBloqueoPantalla
  If PantallaBloqueada Then DesbloquearPantallaBloqueo
else
  PantallaBloqueada  = ComprobarBloqueoPantalla
  If PantallaBloqueada = False then BloquearPantallaBloqueo
end if


Saludos
 
Last edited:
Top