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.