The intention to create this project is a need to use android phone as a 3G Router. Phone is connected through 3G/4G/LTE connection to internet and shares connection using tethering functionality. Application triggers just after boot has been completed and switching on 3G connection and switch on tethering. In this way phone is working as router just after switched it on without any additional support from user side.
Min. required Android version: 2.3 (less features but more devices supported). Rooting phone is not required.
Some of implemented features:
- starts immediately after operation system boot (you don't have to switch on manually tethering and internet connection on your mobile phone)
- scheduler - you can define when your router will be switched off (i.e. during the night to safe the energy)
- if no one is using router for configured time internet connection and tethering could be switched off
- SIM card's whitelist - you may define for which SIM card you want to enable this features (for others SIM card's service will be disabled to protect you from the additional costs)
- checks permanently if your internet connection is active and reconnect if it has been lost
- option to disable while roaming (National and International)
- change status notifications
- android widget
- notification status informs about current working mode and enables buttons to change it
Features still under development:
- tethering activation on Bluetooth connection (possibility to configure up to 3 devices)
- tethering activation on USB or AC charger connection
- control data usage and deactivates tethering once the limit is exceeded
- monitoring battery temperature and suspend tethering if limit exceeds
- activate/deactivate tethering on configured cellular networks
- stores up to 10 WiFi tethering settings and selects one as default
Signing apk needs to set credentials in local file gradle.properties (expected location in folder ~/.gradle) and add following settings:
RELEASE_STORE_FILE={path to your keystore}
RELEASE_STORE_PASSWORD=*****
RELEASE_KEY_ALIAS=*****
RELEASE_KEY_PASSWORD=*****
Build app: gradle build
Example of gradle.properties and local.properties templates.
More about signing apk files you may find here
Application is using OpenCellID API and therefore it requires to create account and provide API_KEY. Once you get a key you need create a file in root folder of project api.key and add line OPEN_CELL_ID_API_KEY= Otherwise application cannot retrieve cellular towers location.
Built application you may install here: Auto WiFi Tethering