Hola amigos, necesitaria ayuda se puede iniciar una APP con 3 o 4 o 5 pulsaciones del boton power? tal vez haciendo que la app quede en segundo plano? no se.. consulto a los que saben.
Te avanzo (por lo que se) que ese boton no puedes detectarlo, es un poco raro por que existe en el KeyCode ( KeyCodes.KEYCODE_POWER ) pero si lo intentas en el Sub Activity_KeyPress , no entra al pulsar este botón se va a Pause.
Crea un servicio, y lo pones en marcha cuando quieras detectar las pulsaciones en el boton power.
Y pon este código:
B4X:
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim Broadcast As BroadCastReceiver
Dim ContadorOff= 0 As Int
Dim ContadorOn= 0 As Int
End Sub
Sub Service_Create
Broadcast.Initialize("BroadcastReceiver")
End Sub
Sub Service_Start (StartingIntent As Intent)
Broadcast.addAction("android.intent.action.SCREEN_OFF")
Broadcast.SetPriority(2147483647)
Broadcast.registerReceiver( "")
Broadcast.addAction("android.intent.action.SCREEN_ON")
Broadcast.SetPriority(2147483647)
Broadcast.registerReceiver( "")
End Sub
Sub BroadcastReceiver_OnReceive (Action As String, i As Object)
Dim i2 As Intent = i
Dim accion = i2.Action As String
If accion.Contains("SCREEN_OFF") Then
Log("Pulsado Boton power en off")
ContadorOff = ContadorOff +1
End If
If accion.Contains("SCREEN_ON") Then
Log("Pulsado Boton power en on")
ContadorOn = ContadorOn +1
End If
End Sub
Recuerda que cuando apagas el dispositivo el Activity se va a Pause
Hola, encontré una forma mas facil que empleaba en otra aplicación
B4X:
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Private pe As PhoneEvents
Dim ContadorOff= 0 As Int
Dim ContadorOn= 0 As Int
End Sub
Sub Service_Create
pe.Initialize("pe")
End Sub
Sub pe_ScreenOff (Intent As Intent)
ContadorOff = ContadorOff +1
Log("Pulsado botón Power OFF")
End Sub
Sub pe_ScreenOn (Intent As Intent)
ContadorOn = ContadorOn +1
Log("Pulsado botón Power ON")
End Sub
Jesus no entendi o no me sale, perdon, arme el servicio, pero no entiendo como hacer que el servicio lanze la aplicacion, tal vez soy muy nuevo e ignorante. :'(
Anda perfecto, modifique algunas cosas, ahora una consulta BGsoft como hago para poner el contador a 0, o que el servicio se reinicie y no siga contando despues de 2 minutos de apagago el celular.
Anda perfecto, modifique algunas cosas, ahora una consulta BGsoft como hago para poner el contador a 0, o que el servicio se reinicie y no siga contando despues de 2 minutos de apagago el celular.
Anda perfecto, modifique algunas cosas, ahora una consulta BGsoft como hago para poner el contador a 0, o que el servicio se reinicie y no siga contando despues de 2 minutos de apagago el celular.
Las variables se ponen a cero asignando un 0 (cero)
Ahora mas en serio, para poner a cero esa variable seria asi:
B4X:
' si es desde el mismo módulo
ContadorOn = 0
ContadorOff= 0
' Si lo haces desde otro módulo
NombreDelModulooServicio.ContadorOn = 0
NombreDelModulooServicio.ContadorOff = 0
Tema servicios, tendrias que pararlo y luego volverlo a llamar:
B4X:
StartService(NombreDelServicio) ‘ Llamar al Servicio
StopService(NombreDelServicio) ‘ matar el Servicio
CancelScheduledService(NombreDelServicio) ' Para si has realizado un StartServiceAt