Spanish Como configurar los botones físicos

Discussion in 'Spanish Forum' started by Kevin535, Apr 17, 2019.

  1. Kevin535

    Kevin535 New Member

    Hola

    necesito saber como puedo configurar el botón de volumen que al presionarlo 5 veces o mas me active una función mientras un servicio esta activado, si el servicio no esta activado tenga su función normal
    en Android

    gracias
     
  2. José J. Aguilar

    José J. Aguilar Active Member Licensed User

    Hola:

    Haz pruebas con:
    Code:
    Sub Activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event
        If KeyCode = KeyCodes.KEYCODE_VOLUME_UP Then
            
    If ServicioActivo Then
               Haz cosas aquí...
            
    End If
        
    End If
    End Sub
    Prueba a usar un contador para cada pulsación, y alguna marca de tiempo para ver si las pulsaciones son consecutivas y si no resetar el contador o algo así...
     
  3. Kevin535

    Kevin535 New Member

    Si quiero que se active cuando se presione 5 veces en un lapso de 7 segundos máximo como se pondría?
     
  4. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola

    Puedes hacerlo asi:
    Code:
    Sub Globals
       
    Dim ContadorBotonVolumen = 0 As Int
       
    Dim Tiempo = 0 As Long
       
    Dim ServicioActivo = True As Boolean ' lo puse asi para hacer pruebas
    '''''''''''''''''''
    '''''''''''''''''''
    '''''''''''''''''''

    Sub activity_KeyUp (KeyCode As Int) As Boolean
     
       
    Dim TiempoTranscurridoSegundos As Long

      TiempoTranscurridoSegundos = (
    DateTime.Now-Tiempo)/DateTime.TicksPerSecond
     
       
    ' por si se entra pasado mucho tiempo
       If TiempoTranscurridoSegundos > 7  Then ContadorBotonVolumen = 0
     
        
    If KeyCode = KeyCodes.KEYCODE_VOLUME_UP Then
           
    If ServicioActivo Then
                   
    If ContadorBotonVolumen = 0 Then Tiempo= DateTime.Now
                   TiempoTranscurridoSegundos = (
    DateTime.Now-Tiempo)/DateTime.TicksPerSecond
                   ContadorBotonVolumen = ContadorBotonVolumen +
    1
                   
    Log("Contador " & ContadorBotonVolumen & " Segundos " & TiempoTranscurridoSegundos) ' es solo para ver la evolución
                   If TiempoTranscurridoSegundos <=7  Then
                       
    If ContadorBotonVolumen = 5 Then
                         LogColor(
    "Llegó a 5 en su tiempo"Colors.Blue)
                           ContadorBotonVolumen = 
    0
                           
    ' ******* aqui pones el código que quieras *******
                       End If
                   
    Else
                       
    ' se superó el tiempo
                     ContadorBotonVolumen = 0  
               
    End If
               
    Else
                   
    ' si el servicio está parado se resetea
                   ContadorBotonVolumen = 0  
               
    End If
               
    Return True
           
    Else
               
    ' si quieres que al pulsar otra tecla se resetee el tiempo y el contador ponlo aqui
            
               
    Return True
     
           
    End If

     
     
    End Sub
    El código lo puedes hacer mas corto, lo puse asi para que se vea mas claro

    Saludos
     
    José J. Aguilar 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