I am an avid sports bettor and everyday I place bets using a mobile app from a local sportsbook. The sportsbook offers a mobile app, only, and no desktop version. Which is too bad because I know how to automate desktop applications and desktop browsers using Selenium.

The placing of bets is a mindless operation that I have to perform manually. I get an email with which teams to bet from a professional service, I then open the mobile app from the sportsbook, and use my fingers to click through the various bets, submitting them as I go. I want to automate this to give me back time in my life.

I thought that I could use something like Android Studio, jUnit, and uiautomatorviewer (Android SDK tool) and automate the phone via my desktop through a USB connection on the phone. Of course this solution requires enabling USB Debugging on the Android phone. Thinking this solution would be a slam dunk, I started implementing it and I ran in to a major snag: the sportsbook mobile app disables itself when USB debugging is turned on! Which stops this solution from working. And that is why I am looking for a native solution: one that does not require a USB connection. (note: I did call them and ask why this is - they said that they triangulate my phone using its LTE connection to ensure I'm in a legal place to gamble in - and that if the USB connection could be enabled then theoretically someone could setup a server farm, hook phones to it, and remote in from any where in the world to place bets, violating the law - well I'm not breaking the law with what I want to do, but I see their point as to why it disables)

Before I go down the rabbit hole of discovering a native solution - which I freely admit I know nothing about - I'd like to ask the community here how it might be done.

Some thoughts that I had...

Could I write an android app that controls another android app?

Could I use Selendroid (natively) to control the mobile sports app?

Both seem like major undertakings.

1 Answer 1

The Settings-App uses a persistent system property to enable/disable 

The property_service inside  the system controls which "process-id" 
is allowed to set the different properties. Any Property starting 
"persistent.service.*" can only be set by AID_SYSTEM. 

So you app must be a system app to be able to set this kind 
of properties and for this you have to sign it with the platform key 
of the particular device. 

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .