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

Gabino A. de la Gala

Active 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