107 votes

Comment utiliser ADB pour envoyer des événements tactiles à l'appareil à l'aide de la commande sendevent ?

J'essaie d'envoyer des événements tactiles à un appareil en utilisant AndroidDebugBridge, afin de pouvoir faire de l'automatisation de base pour les tests de l'interface utilisateur. J'ai suivi la discussion dans LIEN . Je suis capable d'utiliser sendevent pour simuler le toucher sur des émulateurs, mais je ne peux pas faire la même chose sur un appareil.

Comme dans le lien ci-dessus, l'émulateur semble envoyer 6 événements pour chaque contact (xcoord, ycoord, 2 pour la pression, 2 pour le relâchement) et il était facile d'utiliser cette information pour envoyer des événements, mais un getevent pour l'écran tactile d'un appareil semble générer beaucoup trop d'événements.

Quelqu'un a-t-il réussi à envoyer un message tactile à un appareil à partir d'ADB ? Pourriez-vous nous faire part de la solution ?

164voto

user643154 Points 511

Android s'accompagne d'une input outil de ligne de commande permettant de simuler divers événements d'entrée. Pour simuler le tapotement, c'est :

input tap x y

Vous pouvez utiliser le shell adb ( > 2.3.5) pour exécuter la commande à distance :

adb shell input tap x y

81voto

Tomas Points 549

Pour effectuer une action particulière (par ex.

adb shell getevent -l

O

<...>
/dev/input/event3: EV_KEY       BTN_TOUCH            DOWN
/dev/input/event3: EV_ABS       ABS_MT_POSITION_X    000002f5
/dev/input/event3: EV_ABS       ABS_MT_POSITION_Y    0000069e

a

I

adb shell input tap 757 1694

M

h h

13voto

user1587329 Points 91

2.3.5 n'avait pas input tap , juste input keyevent y input text Vous pouvez utiliser le monkeyrunner pour cela : (il s'agit d'une copie de la réponse à l'adresse suivante https://stackoverflow.com/a/18959385/1587329 ):

Vous pouvez utiliser coureur de singe comme ceci :

$ monkeyrunner
>>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
>>> device = MonkeyRunner.waitForConnection()
>>> device.touch(200, 400, MonkeyDevice.DOWN_AND_UP)

Vous pouvez également effectuer un glisser-déposer, lancer un Jetez un coup d'œil à l'api pour Appareil pour singes .

9voto

Y

a

c

S h

4voto

Elist Points 960

Envisagez d'utiliser la fonction uiautomator avec adb shell uiautomator [...] ou directement en utilisant le .jar fourni avec le SDK.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X