Spanish iniciar una APP con 3 o 4 o 5 pulsaciones del boton power?

Discussion in 'Spanish Forum' started by GerardoBasualdo, Jan 24, 2018.

  1. 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.
     
  2. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola Gerardo:

    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.

    Aqui Erel dice que no puedes detectarlo:
    https://www.b4x.com/android/forum/threads/keycodes-keycode_power.75327/#post-556004

    Cuando tenga un rato voy a intentar detectarlo con intent o algun otro método y si lo consigo te lo comento

    Saludos
     
  3. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola de nuevo, lo he conseguido ;)

    Crea un servicio, y lo pones en marcha cuando quieras detectar las pulsaciones en el boton power.
    Y pon este código:

    Code:
    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

    Saludos
     
    Descartex and Seneca like this.
  4. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola, encontré una forma mas facil que empleaba en otra aplicación :rolleyes:

    Code:
    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
    Saludos
     
  5. Descartex

    Descartex Well-Known Member Licensed User

    Eres un crack, Jesús!!! @bgsoft
     
  6. 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. :'(
     
  7. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola

    Para cargar un formulario siempre es lo mismo:

    Code:
    StartActivity("NombredelActivity")
    Saludos
     
    GerardoBasualdo likes this.
  8. 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.

    Muchas Graciassssssss!
     
  9. 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.

    Muchas Graciassssssss!
     
  10. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola Gerardo:

    Las variables se ponen a cero asignando un 0 (cero) :D
    Ahora mas en serio, para poner a cero esa variable seria asi:
    Code:
    ' 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:

    Code:
    StartService(NombreDelServicio) ‘ Llamar al Servicio

    StopService(NombreDelServicio) ‘ matar el Servicio

    CancelScheduledService(NombreDelServicio)  ' Para si has realizado un StartServiceAt
    Seria interesante que te miraras esto:
    https://www.b4x.com/android/forum/threads/b4a-tutorial-módulos-de-servicio.42689/

    Saludos
     
    GerardoBasualdo likes this.
  11. Sos un genio! BGsoft! mire tu pagina en internet, impresionante la cantidad de servicios que das... felicitaciones!
     
  12. bgsoft

    bgsoft Well-Known Member Licensed User

    Gracias Gerardo, pero tambien llevo muuuuchos años en este negocio, quizas hasta mas de los que tu tienes :rolleyes:


    Saludos
     
    GerardoBasualdo likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice