Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Enviar evento táctil de ADB a un dispositivo

Estoy intentando enviar acontecimientos del tacto a un dispositivo usando el comando de la cáscara de ADB, de modo que pueda hacer una cierta automatización básica para las pruebas de UI. He seguido la discusión en algunos hilos anteriores con respecto a esto.

Confirmé sobre cómo conseguir los acontecimientos y usar los acontecimientos, para enviar 6 acontecimientos para cada tacto (xcoord, ycoord, 2 para la prensa, 2 para la liberación) y era fácil utilizar esta información a sendevents, pero un getevent para la pantalla táctil para un Dispositivo parece generar demasiados eventos.

  • Cómo dibujar una superposición en un SurfaceView utilizado por la cámara en Android?
  • ejecutando runOnUiThread en una clase separada
  • Imágenes de captura automática de la cámara de recorte de Android
  • Proguard Android, mantener la clase interna
  • Cambiar la fuente LogCat de Android en Eclipse
  • División de clases grandes con clases internas en Java
  • ¿Alguien ha logrado enviar evento táctil de ADB a un dispositivo? ¿Podría por favor compartir la solución.

    Realmente aprecio tu ayuda.

    Estoy trabajando en la grabación de los eventos táctiles en el teléfono. Después de eso, deseo enviar el mismo evento de nuevo al dispositivo como parte de las pruebas de IU.

    Por favor ayuda

  • ¿Cómo puede mi vista responder a un mousewheel?
  • Uso de IntelliJ con complemento de Android, en lugar de usar Android Studio
  • Características de la tarjeta SD de Android en Samsung Galaxy
  • Sqlite DB con Android algunas preguntas básicas
  • Cambiar ubicación predeterminada de los proyectos (o área de trabajo) en Android Studio
  • ¿Soporta Android jquery?
  • 4 Solutions collect form web for “Enviar evento táctil de ADB a un dispositivo”

    Android viene con una herramienta de línea de comandos de entrada que puede simular varios eventos de entrada. Para simular el uso de derivaciones:

    input tap xy 

    Puede utilizar el shell de adb para ejecutar el comando de forma remota:

     adb shell input tap xy 

    Otras opciones son:

     shell@m0:/ $ input input usage: input ... input text <string> input keyevent <key code number or name> input [touchscreen|touchpad|touchnavigation] tap <x> <y> input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)] input trackball press input trackball roll <dx> <dy> 

    Para enviar eventos táctiles es necesario:

    1 Establecer coordenadas:

     adb shell sendevent /dev/input/event2 3 0 x adb shell sendevent /dev/input/event2 3 1 y 

    2 Enviar evento táctil (debe tener un par 0 0):

     adb shell sendevent /dev/input/event2 1 330 1 adb shell sendevent /dev/input/event2 0 0 0 

    3 Enviar evento de liberación de dedo (debe tener 0 0 0 par):

     adb shell sendevent /dev/input/event2 1 330 0 adb shell sendevent /dev/input/event2 0 0 0 

    Tenga en cuenta:

    1 Puede grabar eventos:

     adb shell getevent 

    2 si usa getevent todos los valores de evento están en hexadecimal.

    Saludos cordiales, Yahor

    Me las arreglé para grabar una sesión y reproducirla con sólo bash y adb.

    Esto es lo que hice, espero que ayude a alguien.

    Registrar una serie de eventos

    1. Configurar el PC para grabar datos en un archivo ( /tmp/android-touch-events.log )

       $ adb shell getevent | grep --line-buffered ^/ | tee /tmp/android-touch-events.log 
    2. Hacer algunas cosas en el teléfono
    3. Detener el comando adb en el PC con ctrl-c

    Reproducir los eventos grabados

    Este comando hará la conversión hexadecimal en awk

     $ awk '{printf "%s %d %d %d\n", substr($1, 1, length($1) -1), strtonum("0x"$2), strtonum("0x"$3), strtonum("0x"$4)}' /tmp/android-touch-events.log | xargs -l adb shell sendevent 

    Es posible que desee utilizar monkeyrunner de esta manera:

     $ monkeyrunner >>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice >>> device = MonkeyRunner.waitForConnection() >>> device.touch(200, 400, MonkeyDevice.DOWN_AND_UP) 

    También puede hacer una arrastrar, iniciar activies etc Echa un vistazo a la api de MonkeyDevice .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.