This question already has an answer here:
I am trying to send touch events to a device using adb shell
command, so that I can do some basic automation for UI tests. I have followed the discussion in some previous threads regarding this.
I confirmed about getting the events and using sendevent
, to send out 6 events for each touch ( xcoord, ycoord, 2
for press, 2
for release) and it was easy to use this information with sendevent
, but the getevent
command for the touchscreen device seems to generate far too many events.
Has somebody managed to send touch event from adb
to a device? Could you please share the solution.
I am working on recording the touch events on phone. After that I wish to send the same event back to the device as part of UI testing.
Please help
Android comes with an
input
command-line tool that can simulate miscellaneous input events.To simulate a
tap
, use:Run the
input
command remotely usingadb shell
:Other options are:
I managed to record a session and replay it with only bash and adb.
This what I did, I hope it helps someone.
Record a series of events
Set up the pc to record data in a file (
/tmp/android-touch-events.log
)ctrl-c
Replay the recorded events
This command will do the hex conversion in
awk
To send touch event you need to do:
1 Set coordinates:
2 Send touch event (must have 0 0 0 pair):
3 Send release finger event (must have 0 0 0 pair):
Please note:
1 You can record events:
2 if you use getevent all event values are in hex.
Best regards, Yahor
You might want to use monkeyrunner like this:
You can also do a drag, start activies etc. Have a look at the api for MonkeyDevice.