jeff
jeff

Reputation: 13643

How to simulate touch for any application in Android?

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

Answers (5)

VasiliNovikov
VasiliNovikov

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

Anand Varkey Philips
Anand Varkey Philips

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

user3818494
user3818494

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

mbmc
mbmc

Reputation: 5105

You can also try Robotium (where you programmatically, in Java, click buttons etc), or MonkeyRunner (to send random UI events).

Upvotes: 4

Zanval
Zanval

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

Related Questions