RadioControl is an app I designed for my Nexus 6 while sitting in my CSE class. I created it because I noticed some battery drain when on WiFi and the cell network at my university. I knew that my carrier, Project Fi, allowed WiFi calling and texting and I could turn on airplane mode when I got to my classes, making sure I still had battery at the end of the day. I felt that having to manually turn on airplane mode, then re-enable WiFi was tedious, so I created this app to fix that issue. This app should work on any phone that has root access. It's preferable that your carrier allows WiFi calling and texting so your phone still works like a phone :). The app seamlessly turns off the cell radio when autoconnected to a Wifi Network. When you are ready to leave a location with Wifi, the app will automatically turn the cell radio back on as soon as the WiFi connection drops. This usually takes about 2 seconds on my phone to lose WiFi and then reconnect to the cell network. I have added functions that allow the app to only disable the cell radio if the active WiFi connection is working properly(Like connecting to a network that seems to be working but can't reach the internet). I have included other optimizations to furthur decrease the latency from the switching service. It allows the app almost instantly switch networks. The app only uses about 0.3% battery per day from my testing. I have personally saved about 30% of my battery by not having the cell connection be idle. Hopefully cellular technology can get better in the future so my app will not even be needed.
When you launch the app, you will be greeted with an introduction to some basic aspects of the app and how it functions. Keep pressing next and get the the main screen of the app. You will be prompted to allow root access to the app, once allowed the app can function properly. You should see in the top right RadioControl is Enabled. If you see, RadioControl couldn't get root, you need to make sure that you have properly rooted your device
When on the main screen, swipe from the left to open the drawer. You can also press the ☰ button in the top bar. Then click settings under Home
Network Settings allows you to select WiFi networks which you don't particularly trust will work properly to handle calls and texts. Such as, a public/guest network that requires you to sign in, or doesn't have enough bandwidth/speeds. This is especially useful for networks that you only visit briefly. As a personal example, I usually check off any networks that
By default, all tracking and reporting is OPT-IN, so it will be off by default. If you want to share crashes, and general usage reporting, you may do so in the apps Settings. You can also disable the ads on the main screen if you'd like
Intelligent mode is a new method for detecting network changes. Built for Nougat and newer (Android 7.0+) it adheres to the new standard for background processes, and is overall more stable than the regular service. It should fix any issues with the app if you are on Nougat or Oreo
This setting requires you to grant the app Phone permissions. It allows the app to turn on the cell radio when a call is active. Useful if your WiFi calls sound robotty, so the phone can handoff the call to the cell network. This feature is still experimental and may not work properly.
NOTE! The default interval is 1 minute. This setting, in conjunction with the Service Settings allows the app to periodically check if your device is in the proper network mode. If you notice that the cell radio is still active when you are on WiFi this setting is useful.
The Alternate root command disables the cell radio completely, as opposed to normally turning on airplane mode. This allows bluetooth devices to continue to function whereas previously airplane mode would disconnect them.
This logs all actions of the app and stores it in a text file in the apps root directory. It's used by the Stats screen in the app to display how many times airplane mode has been triggered and how many times the wifi connection has been dropped. It's not that great though. This data never leaves the app and only contains SSID names.
Trial and error coding :)
Privacy is my #1 priority. As someone who dislikes tracking I tend to keep it minimal. My website has Google Analytics on the main page. I use Drift to chat with people if they need help with something(The little blue square in the bottom right of the main page) In my apps, I always make any form of tracking opt-in. Any data I get is strictly for making my apps better. Nothing is personally identifiable, usually it's just device makes and models, whichever app version is being used, and other crash data only from my own apps.
Never ever. It's not my intention to sell any data I collect. It's for my eyes only.
For crash reporting I use Fabric.io and Firebase crash logging(Google). My apps are distributed through the Google Play Store and is subject to their terms for privacy. I also use GitHub for my source code, as well as any releases that go to Google Play. For more information on what each app uses, you can check their respective Github READMEs. Or contact me directly at admin@nikhilp.org