Simulación de eventos de pantalla táctil en Android
¿Es posible que un proceso en segundo plano o una Softkeyboard creen eventos táctiles y los envíen a la pantalla como si la pantalla fuera realmente tocada?
Es decir, simulando eventos de pantalla táctil.
Hay una herramienta que viene con el SDK llamado Monkey que genera flujos pseudo-aleatorios de eventos de usuario tales como:
- Clics
- Toques
- Gestos
- Una serie de eventos a nivel de sistema.
Usted puede utilizar el Mono para probar las aplicaciones de estrés que está desarrollando, de una manera aleatoria pero repetible .
También hay la herramienta monkeyrunner que proporciona una API para escribir programas que controlan un dispositivo o emulador Android desde fuera del código de Android. Con monkeyrunner, puedes escribir un programa Python que instala una aplicación o un paquete de prueba de Android, lo ejecuta, envía pulsaciones de teclado, toma capturas de pantalla de su interfaz de usuario y almacena capturas de pantalla en la estación de trabajo.
Para presionar los botones, puede utilizar lo siguiente:
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
Puede encontrar una lista de los códigos de teclado disponibles aquí: http://developer.android.com/reference/android/view/KeyEvent.html
Para eventos con pantalla táctil, puede utilizar:
dispatchTouchEvent(MotionEvent.obtain( SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, Xinput, Yinput, 0));