2011-12-27 12 views
9

Estoy tratando de enviar eventos táctiles utilizando archivos por lotes (.bat) y el shell adb.simulando el toque usando ADB

Traté de volver a enviar eventos que obtuve de los getevents del shell adb, y no funciona aunque el comando pase sin errores. Alguna idea?

¿Cómo simulo un evento táctil y un evento de liberación en una coordenada dada (x, y) utilizando el shell ADB?

+0

Posible duplicado de [¿Cómo usar ADB para enviar eventos táctiles al dispositivo usando el comando sendevent?] (Http: // stackoverflow.com/questions/3437686/how-to-use-adb-to-send-touch-events-to-device-using-sendevent-command) – taur

Respuesta

16

Ya que parece cambiar dependiendo de la versión de Android, sugiero que siga estas instrucciones:

  1. Inicio evento de movimiento descarga que necesita para reproducirse:

    ~$ adb shell getevent | grep event2 
    

    grep es muy útil para filtrar la salida

  2. Realice el evento de movimiento que desee reproducir;

  3. ¡Entonces simplemente convierta todos los valores de hexadecimal en volcado a valores decimales! :)


Para encontrar lo eventX está trabajando para usted siguiente:

  1. inicio terminal y escriba:

    ~$ adb shell getevent 
    

Usted verá rápidamente en movimiento huellas con por ejemplo/dev/input/event4 ......

    pantalla
  1. Toque una vez

Debe ver entre event4 pocos eventX y estos eventX justo en el momento del contacto

será tuyo interfaz de entrada para la reproducción de movimiento ¡eventos! :)

Source.

+3

Proporcione una respuesta completa, en lugar de solo un enlace. Los enlaces pueden desaparecer, cambiar, etc., por lo que la respuesta será inutilizable. – Nanne

+0

Publicación editada. :) – krz37

+1

Ese enlace se ha actualizado para incluir lo siguiente para Android 2.2+ (¡Mucho más fácil!) "adb shell input tap x y" – Matt

10

que lograron emular el caso de Sony Xperia LT26i utilizando

adb shell getevent | grep event2 

para capturar la entrada y luego la conversión de todos los valores de hexadecimal a decimal, y poniendo la secuencia generada en un shellscript

adb shell sendevent /dev/input/event2 3 57 23710 
adb shell sendevent /dev/input/event2 3 53 329 
adb shell sendevent /dev/input/event2 3 54 1183 
adb shell sendevent /dev/input/event2 3 52 0 
adb shell sendevent /dev/input/event2 0 0 0 
adb shell sendevent /dev/input/event2 3 57 4294967295 
adb shell sendevent /dev/input/event2 0 0 0 

Me imaginé a partir de mensajes en el foro vinculado que la línea 2 y 3 están configurando las posiciones X e Y las siguientes 2 líneas son presionar presionar y las 2 líneas inferiores son de liberación táctil, yo hav descubrió lo que hace la primera línea pero se necesita para que funcione. Espero que esto sea útil