¿Cómo simular un evento de toque en Android?
¿Cómo simular un evento táctil con Android mientras se dan las coordenadas X e Y manualmente?
- Reemplazar plantillas de biblioteca de gestos en android
- Android: ¿Cómo / dónde colocar código de gesto en IME?
- Android reconocimiento de escritura
- Webview dentro del listview: conflictos de eventos táctiles Por lo tanto no puede pellizcar Zoom IN / OUT en android
- cómo detectar este gesto de movimiento específico a través de sensores?
- Detección de gestos en el fragmento
- Smartphone acelerómetro gestos algoritmos
- Uso de GestureLibrary con ScrollView
- Algoritmo de coincidencia de patrones de forma en Java
- SDK de Android: con Gesture API, le gustaría que el gesto permanezca en pantalla después de ser reconocido
- Android: Dos dedos de doble toque es posible detectar con GestureDetector?
- ¿Cómo detectar la duplicación en una vista?
- Android - Detección de gestos (deslizar hacia arriba / hacia abajo) en una vista determinada
El método de Valentin Rocher funciona si has ampliado tu vista, pero si estás usando un detector de eventos, usa esto:
view.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { Toast toast = Toast.makeText( getApplicationContext(), "View touched", Toast.LENGTH_LONG ); toast.show(); return true; } }); // Obtain MotionEvent object long downTime = SystemClock.uptimeMillis(); long eventTime = SystemClock.uptimeMillis() + 100; float x = 0.0f; float y = 0.0f; // List of meta states found here: developer.android.com/reference/android/view/KeyEvent.html#getMetaState() int metaState = 0; MotionEvent motionEvent = MotionEvent.obtain( downTime, eventTime, MotionEvent.ACTION_UP, x, y, metaState ); // Dispatch touch event to view view.dispatchTouchEvent(motionEvent);
Para obtener más información sobre la obtención de un objeto MotionEvent, aquí hay una excelente respuesta: Android: ¿Cómo crear un MotionEvent?
Aquí hay un script monkeyrunner que envía touch and drags a una aplicación. He estado utilizando esto para probar que mi aplicación puede manejar gestos repetitivos rápidos.
# This is a monkeyrunner jython script that opens a connection to an Android # device and continually sends a stream of swipe and touch gestures. # # See http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html # # usage: monkeyrunner swipe_monkey.py # # Imports the monkeyrunner modules used by this program from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice # Connects to the current device device = MonkeyRunner.waitForConnection() # A swipe left from (x1, y) to (x2, y) in 2 steps y = 400 x1 = 100 x2 = 300 start = (x1, y) end = (x2, y) duration = 0.2 steps = 2 pause = 0.2 for i in range(1, 250): # Every so often inject a touch to spice things up! if i % 9 == 0: device.touch(x2, y, 'DOWN_AND_UP') MonkeyRunner.sleep(pause) # Swipe right device.drag(start, end, duration, steps) MonkeyRunner.sleep(pause) # Swipe left device.drag(end, start, duration, steps) MonkeyRunner.sleep(pause)
Use comandos de shell de adb para simular el evento táctil
**adb shell input tap xy** and also **adb shell sendevent /dev/input/event0 3 0 5 adb shell sendevent /dev/input/event0 3 1 29**
Si entiendo claramente, usted quiere hacer esto programatically. A continuación, puede utilizar el método onTouchEvent de View
y crear un MotionEvent
con las coordenadas que necesita.
Usted debe dar el nuevo monkeyrunner ir. Tal vez esto puede resolver sus problemas. Usted pone los códigos de teclado en él para la prueba, quizás los acontecimientos del tacto son también posibles.
Al usar Monkey Script me di cuenta de que DispatchPress (KEYCODE_BACK) no está haciendo nada que realmente chupar. En muchos casos esto se debe al hecho de que la Actividad no consume el evento Clave. La solución a este problema es utilizar una mezcla de script de mono y comando de entrada de shell de adb en una secuencia.
1 El uso de script de mono proporcionó un gran control de tiempo. Espere una cierta cantidad de segundo para la actividad y es una llamada de bloqueo de adb.
2 Finalmente, el envío de la entrada de shell adb keyevent 4 finalizará el APK en ejecución.
P.EJ
Adb shell monkey -p com.my.application -v -v -v -f /sdcard/monkey_script.txt 1
Adb shell input keyevent 4
MotionEvent se genera sólo tocando la pantalla.
- No ActionBar en PreferenceActivity después de actualizar a Support Library v21
- La aplicación está mal configurada para acceder a Facebook: Problema de integración con Android Facebook