Reputation: 13643
I know some similar questions have already been asked, but I think they are asking for simulating touch in their own applications, however I want to make an agent that can "use" any application.
So what I want to achieve should take as a series of inputs (touch: {x1,y1}, {x2,y2}, etc) and control any application (such as Facebook) just as if a genuine user is touching that coordinate.
Is there any example, or a way for this? Or an already existing question about this?
Thanks for any help!
Edit: I imagine that the solution -if any exists- will probably involve a PC. either connecting my real Android device to my PC, or using a Virtual Android Device. However, virtual devices do not support Google Play, and I need to use some apps from Google Play.
Upvotes: 24
Views: 48875
Reputation: 10236
If you have the developer mode on your device enabled, you can run:
adb shell input tap x y
adb shell input help # to read more options/help
Take also a good look at this QA in Android: https://android.stackexchange.com/questions/115320/is-it-possible-to-simulate-touch-without-root
Upvotes: 0
Reputation: 2075
I had to search a bit for this. I was also looking for this solution.
NO ROOTING REQUIRED FOR THIS: If you want to repeat a sequence of steps like fill a form, repeat game steps because redoing is boring, You can try : FREP Android App from Play Store(Link).
If you want to add conditional scenarios like, when you play Clash of Clans with home Wifi, turn data automatically and disable wifi ( Because Airtel Wifi in India is unpredictable and can make you loose the clan war!!) use, Macro Droid from Play Store.
You can try these as well: Mahiro Many apps are available based on Tasker like, Auto Input. You can maybe code/write macro to make personal solution with this Tasker App.
Upvotes: 8
Reputation: 29
You can use robotium to program (in java) to click on any button or on any co-ordinates on the screen. Its simple to set up and use.
Upvotes: 0
Reputation: 5105
You can also try Robotium (where you programmatically, in Java, click buttons etc), or MonkeyRunner (to send random UI events).
Upvotes: 4
Reputation: 191
Have you tried Selendroid? http://selendroid.io/
I haven't tried it myself, I only know of it because I use Selenium for Web Applications.
Selenium is able to simulate a series of input events. For this purpose, one can either work with coordinates or DOM elements (divs, buttons, textfields etc).
Your usecase should be exactly what selendroid was made for.
Upvotes: 1