PDA

Ver la Versión Completa : [ TUTORIAL ] Comando "Input" en adb shell


Rsc
09/01/15, 01:33:54
Buenas, lo primero aclarar que esto se ejecuta desde el Terminal Shell de Android y desde Tasker en la acción "Código/Ejecutar consola" y hay que tener acceso ROOT, por lo tanto hay que marcar la casilla de Usar Root en la edición de la acción de Tasker. Parte de la información la aportó en otro hilo el compañero "drwd" a quien le estoy agradecido porque llevaba tiempo buscando como emular una pulsación larga.

Se trata de unos comandos que se utilizan para emular pulsaciones en pantalla. Es importante saber la resolución del dispositivo en el que se quiera utilizar y para hacer pruebas antes de crear las tareas, es aconsejable habilitar la opción de mostrar la ubicación del puntero, dicha opción se encuentra en Opciones de desarrollo. Creo que puede ser bastante útil para interactuar con otras aplicaciones. A continuación los comandos:

input tap X Y (pulsación en la pantalla, la X y la Y serían las coordenadas. Ej : input tap 270 480 este código emularía una pulsación en el centro de una pantalla de 540X960.

input swipe X1 Y1 X2 Y2 (Emula un deslizamiento en la pantalla, X1 Y1 serían la coordenada inical y X2 Y2 la coordenada donde finalizaría. Ej: input swipe 270 010 270 900 este código deslizaría hacía abajo la barra de notificaciones.

Input Swipe, se puede complementar añadiendo al final la duración del deslizamiento en milisegundos. Ej: input swipe 270 010 270 900 1000 este código haría lo mismo que el anterior, pero tardaría en deslizar la barra de notificaciones 1 segundo.

Si utilizamos input swipe, indicando el mismo punto de inicio que de fin, y le añadimos el tiempo equivalente a una pulsación larga en pantalla, conseguiríamos eso mismo, una pulsación larga. Ej: input swipe 270 480 270 480 999 pulsación larga en el centro de una pantalla de 540x960.

No obstante, para poder añadir tiempo a input swipe, hay que tener Android 4.4+

input text Escritura de texto, bastante más rápida que la acción de Tasker "Entrada/Escritura" pero con algunos inconvenientes. EJ: input text hola, input text %textodeunavariable

1º PROBLEMA - No acepta acentos ni caracteres especiales SOLUCIÓN - Si el texto a escribir está en una variable usar la opción de "Buscar y remplazar" (Busca á en %textodeunavariable y remplazalo por a)

2º PROBLEMA - No acepta espacios SOLUCIÓN - input text hola%sque%stal. %s se escribiría como un espacio. Esto es engorroso a la hora de escribir el código, pero no lo es tanto si tenemos el texto en una variable, ya que al igual que antes se podría utilizar la acción "buscar y remplazar" (Busca espacio en %textodeunavariable y remplazalo por %s. Obviamente donde pone espacio es un espacio, pero no se iba a apreciar en el ejemplo.

input keyevent EVENT_CODE (Se puede poner el código o bien el número que le corresponda. Ej: input keyevent 0, input keyevent KEYCODE_UNKNOWN, ambos códigos harían la misma función.

0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"

Bueno espero haberme explicado bien y que les sea útil. Si alguien tiene información relativa que añadir se agradecería. Un saludo.

Erickesz
21/05/15, 05:14:23
oye tengo un problema me sale un flash que dice "granted tasker to get root permission"

Jusss
21/05/15, 07:45:08
Los "Keycode" que son letras, las escribe? Cual es la diferencia con poner "input Text..."

mlesir
21/05/15, 18:03:51
Erickesz tienes que darle permiso root a Tasker en tu aplicación de superusuario.

Erickesz
21/05/15, 22:23:04
mlesir eso ya lo hice por eso recurrí al foro porque no tengo idea de porque no funciona

Rsc
29/05/15, 14:53:04
Los "Keycode" que son letras, las escribe? Cual es la diferencia con poner "input Text..."

Buenas cuando hiciste esta consulta no te supe contestar, y hoy gracias a una duda que me resolvió ayer mlsir, te puedo decir cual creo que es la función, o por lo menos parte de su función.

Obviamente como tu bien has comentado, no tendría sentido escribir :

input keyevent KEYCODE_H input keyevent KEYCODE_O input keyevent KEYCODE_L input keyevent KEYCODE_A , en vez de escribir input text hola

No obstante parece que su función principal no es utilizar los KEYCODE, para escribir, si no para utilizarlos como eventos en una aplicación.

Por ejemplo podemos utilizar el KEYCODE_BACK, para que pulsando sobre el botón atrás del teléfono, se comporte como un evento y ejecute una tarea.

Sorprendentemente, los KEYCODE_"Letras" no se pueden utilizar como eventos en Tasker, por lo menos cuando se pulsa mientras un elemento "Editor de Texto" está enfocado, y claro, en Android, a no ser que conectes un teclado físico mediante USB u OTG, no puedes pulsar ninguna tecla si no es escribiendo en un cuadro de texto.

Resumiendo, en las propiedades de una escena tipo "Actividad o Diálogo", hay una pestaña que se llama, Tecla, en la cual podremos añadir en el cuadro de texto "Teclas", los KEYCODE que consideremos, separados por "/" sin comillas, para asociarle una tarea a cada uno de ellos.

Hay tres variables asociadas a esta función que son %event_type, %key_code, %key_name, las cuales nos permitirán entre otras cosas añadir condicionales a la tarea en caso de haber especificado más de un KEYCODE.

Posiblemente, los KEYCODE sirvan además para otro tipo de cosas, pero yo las desconozco. Un Saludo