Is there a way to create a script or "app" to automatically input data into an already installed app. I.e Fill and submit a todo task in a todo app. Or fill a register form ?
1 Answer
In every device, there is a binary called input
.
You can invoke it with from your application or even from adb:
$ adb shell input
Usage: input [<source>] <command> [<arg>...]
The sources are:
mouse
keyboard
joystick
touchnavigation
touchpad
trackball
stylus
dpad
touchscreen
gamepad
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
You can then navigate int the app using KeyEvent, click buttons, submit text to the focused element, etc.