Simulación de combinación de pulsadores de teclas del terminal ADB

Quiero enviar " CTRL + W " a Chrome para Android para cerrar la pestaña activa. He probado muchas cosas pero no hay éxito para lograrlo desde la terminal. (Si conecto un teclado USB con OTG, puedo cerrar la pestaña con CTRL + W)

En primer lugar, no quiero escribir una aplicación para esto, sólo quiero un comando de shell para usarlo desde Tasker.

He leído en alguna parte que para lograr esto (pulsación de teclas CTRL + W), tengo que simular pulsaciones de teclas como este:

CTRL abajo
Hacia abajo
Arriba
Subir CTRL

Y para lograr esto desde la terminal, parece que tengo que usar " sendevent ".

Puedo simular todas las teclas de teclado con "sendevent" pero no puedo simular las claves normales con él.

Por ejemplo, hacia abajo y hasta la tecla POWER:

sendevent /dev/input/event1 1 116 1 sendevent /dev/input/event1 0 0 0 sendevent /dev/input/event1 1 116 0 sendevent /dev/input/event1 0 0 0 

Yo uso estos comandos, pero no puedo usar estos comandos para enviar claves normales. (Por ejemplo, a, b, c, etc.)

El evento1 es el gpio-keys, así que lo estoy usando. Y todos los demás eventos de entrada son sensores y uno es el controlador de carga. (Max77693-muic)

La salida del "getevent -p" dice que:

 add device 1: /dev/input/event9 name: "compass_sensor" events: REL (0002): 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 input props: <none> add device 2: /dev/input/event6 name: "barometer_sensor" events: REL (0002): 0000 0001 0002 input props: <none> add device 3: /dev/input/event5 name: "light_sensor" events: REL (0002): 0000 0001 0002 0009 input props: <none> add device 4: /dev/input/event4 name: "proximity_sensor" events: ABS (0003): 0019 : value 1, min 0, max 1, fuzz 0, flat 0, resolution 0 input props: <none> add device 5: /dev/input/event3 name: "gyro_sensor" events: REL (0002): 0003 0004 0005 input props: <none> could not get driver version for /dev/input/mice, Not a typewriter add device 6: /dev/input/event7 name: "Midas_WM1811 Midas Jack" events: KEY (0001): 0072 0073 00e2 SW (0005): 0002 0004 input props: <none> add device 7: /dev/input/event1 name: "gpio-keys" events: KEY (0001): 0072 0073 0074 00ac input props: <none> add device 8: /dev/input/event0 name: "max77693-muic" events: KEY (0001): 0072 0073 00a3 00a4 00a5 input props: <none> add device 9: /dev/input/event8 name: "sec_touchkey" events: KEY (0001): 008b 009e LED (0011): 0008 input props: <none> add device 10: /dev/input/event2 name: "sec_touchscreen" events: ABS (0003): 002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0 0030 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 0031 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 0032 : value 0, min 0, max 30, fuzz 0, flat 0, resolution 0 0035 : value 0, min 0, max 719, fuzz 0, flat 0, resolution 0 0036 : value 0, min 0, max 1279, fuzz 0, flat 0, resolution 0 0039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0 003c : value 0, min -90, max 90, fuzz 0, flat 0, resolution 0 003d : value 0, min 0, max 1, fuzz 0, flat 0, resolution 0 input props: INPUT_PROP_DIRECT 

También mi archivo de diseño de gpio-keys "/system/usr/keylayout/gpio-keys.kl" así:

 key 115 VOLUME_UP WAKE key 114 VOLUME_DOWN WAKE key 116 POWER WAKE key 172 HOME WAKE 

Puedo enviar todos los keyevents normales con:

 "input keyevent KEYCODE_X" 

Y enviar más de uno:

 "input keyevent KEYCODE_X KEYCODE_Y" 

Usted debe pensar que puede funciona de esta manera:

 "input keyevent KEYCODE_CTRL_LEFT KEYCODE W" 

Pero keyevent hacia abajo y hasta inmediatamente y no puedo usarlo para enviar combinación CTRL + W.

Lo sé, la respuesta debería ser con "sendevent". Pero no puedo encontrarlo.

También intenté agregar algunas claves falsas en el archivo de diseño de claves como este:

 key 115 VOLUME_UP WAKE key 114 VOLUME_DOWN WAKE key 116 POWER WAKE key 172 HOME WAKE key 19 Q 

I reiniciado el teléfono, luego intentó:

 sendevent /dev/input/event1 1 19 1 sendevent /dev/input/event1 0 0 0 sendevent /dev/input/event1 1 19 0 sendevent /dev/input/event1 0 0 0 

Pero nunca escribe "Q" en el cualquier cuadro de texto.

Por favor, ayuda, gracias por su ayuda.

¡¡Oh si!! No sé por qué, pero siempre que me siento atrapado, vengo a stackoverflow y tan pronto como empiezo a escribir la pregunta de alguna manera encuentro la respuesta … xD De todos modos, pude hacerlo siguiendo el siguiente procedimiento:

  1. Vaya a / system / usr / keylayout /
  2. En mi caso no había gpio-keys, de todos modos abierto Generic.kl
  3. Tiene todos los keycodes que usted necesitaría simular cualquier cosa … tal como para CTRL_RIGHT el keycode es 97 y para W keycode es 17
  4. Eso es todo lo que necesita, ahora abrir tasker -> Nueva tarea -> Agregar espera 5 segundos -> Ejecutar shell: input keyevent 97 input keyevent 17

Ahora ejecute el comando y abra cromo rápidamente, voila! En 5 segundos verás desaparecer tu cuenta!

Espero que ayude a todos los futuros profesionales tasker;)

Prestigio…

La sección de events en getevent -p output lista todos los códigos de clave aceptados:

 add device 7: /dev/input/event1 name: "gpio-keys" events: KEY (0001): 0072 0073 0074 00ac 

VOLUME_UP (0x73), VOLUME_DOWN (0x72), POWER (0x74) y HOME (0xAC) en caso de /dev/input/event1 . Todo lo demás se filtra por el controlador de entrada del kernel linux mucho antes de que llegue al marco de Android (donde se utilizan los archivos de diseño que intentó modificar)

  • Cómo hacer una línea para el bucle en el shell de Android
  • Problemas con el script wifi de Android
  • ¿Es posible iniciar la actividad a través de adb shell y recibir su respuesta?
  • ¿Cómo medir el tiempo de shell de adb con resolución de milisegundos?
  • Propiedades del sistema de Android: deshabilitarlas en la línea de comandos
  • ¿Existe un equivalente a 'adb shell texto de teclado de entrada' para iOS?
  • Android: Adb rechazó la conexión al cliente
  • Acceso a variables de entorno desde Android Studio gradle build
  • Adb shell su funciona, pero la raíz adb no
  • Android adb, recuperar base de datos utilizando run-as
  • Múltiples comandos a través de Jsch Shell
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.