Better Wifi on/off is the latest creation of project better. It is an agent managing your Wifi state based on heuristics (set of rules).
This app aims at giving you the control of the Wifi state, optimizing your battery life without losing on user experience.
Better Wifi on/off releases are available from Google Play. Development versions will be made available on xda for testing new features / fixes.
The app is free, fully featured with ads.
If you want to support me and/or get rid of the ads you can purchase a "support-the-dev" version on google play.
What is the motivation behind controlling Wifi?
On paper Wifi is less power hungry than 3G but... some apps behave differently when Wifi is on (DropBox / Google+ uploads, Google Maps location caching), the well known wlan_rx kernel wakelock is a symptom of wakeups caused by uncontrolled Wifi hotspots, the Wifi sleep policy is not working consistently and does solve all problems.
Settings to control Wifi
The preferences allow you to control Wifi.
The basic rules for keeping Wifi on / turning Wifi off are (will vary based on your settings):
When device is turned on Wifi stays on if: "network is connected" AND "the access point is whitelisted" && "wifi is not caged (a connection to google.com can be made)"
When screen goes off Wifi stays on if: "phone is in call" OR "network activity was detected" OR "tethering is on" OR "wakelocks from other apps using network were detected"
There are of course plenty of settings to change that behavior like e.g. keep Wifi on if connected to A/C, leave Wifi on as long as connected to a whitelisted SSID.
Sources
This project is open source und the Apache license. Please feel free to browser the repo, review, fork it as you like: https://github.com/asksven/BetterWifiOnOff
Bugs / Feature requests
Open bugs and feature requests can be found on github here: https://github.com/asksven/BetterWifiOnOff/issues
If you want to report a bug you can to it there but also simply post it here, I'll take care of documenting it and reply with the issue number for an easier tracking.
Changelog:
V.2.1
- no changes from RC3
V.2.1RC3
- updated russian translation
- added more logging on detected connected SSIDs
V.2.1RC2
#120: a hopefully better fix for cage check timings
#125: added a pref for leaving wfi on when screen goes off but a connection is active
V.2.1RC1
Added direct link to gplay from main screen
V.2.1B3
#120: start thread for cage check earlier (at wifi on)
Added timed checks
Loading application whitelist is asynchronous
V.2.1B2
#115 threaded cage check
Added more logging to solve the "alarm: null" error
Updated russian language file
Added timestamps to logcat output
V.2.1B1
#115: better cage detection
#116: inconsistent messages when enabling/disabling from the widget
#117: inconsistent plug/unplug event messages
#119: null pointer exception with message alarm: null
Fix for detection support the dev version
Older changelogs
V.1.3.0.2
#92: enable/disable messages are shown multiple times and are not consistent to the user events
V.1.3.0.1
#91: Wifi should be turned off when screen is off and whitelisted a/p gets disconnected
V.1.3.0.0 on Google Play
No changes from latest RC
V.2.0
Merged to master
V.2.0RC8
#112: A better fix for donation detection
V.2.0RC7
#112: Fixed donation detection
ActionBar style for pre-ICS phones
V.2.0RC6
#110: fixed CDMA cell collection
V.2.0RC5
#104: added share/save feature
#105: handle CDMA cells
#106: event log on whitelist shows %s instead of real value
#107: added "clear cell log"
#108: null pointer is cellinfo is null
#109: blank SSID causes the A/P to be handled as whitelisted
V.2.0RC4
#103: fixed issue with unfinished database transation
Removed pull-to-refresh as no longer maintained
Optimized dialogs
V.2.0RC3
#11: added cell tower awareness and rule to turn Wifi on only if connected of known cell
#102: app wihtelist does not keep checked apps
V.2.0RC2
#98: add check for whitelisted app: when running Wifi will not be turned off
V.2.0RC1
Uses ActionBarSherlock for same UX on all android versions
Use Pull-to-Refresh to update list
#95: enabling with widget turns wifi on
#96: avoid scheduling wifi off when screen goes off but wifi is off already
#100: preference to select between light and dark theme
Added russian
V.1.3.0.0RC2
#90: wrong message when user disables/enables processing by tapping the widget
V.1.3.0.0RC1
#88: When disregard airplane mode is enabled wifi is not turned on when screen is turned on
#89: disabling / enabling handling based on user action on wifi outside of BWOF should be logged
New readme and rate dialogs
V.1.2.0.0
No change from RC1
V.1.2.0.0RC1
#82: pref to re-enable BWOF when Wifi is turned on manually
#84: conneting power does not respect airplane mode
#85: when pref is undefined turning screen on enables wifi even if this action is set on unlock
V.1.1.1.0
Fixed various FC conditions from logs/gplay dumps
V.1.1.0.1
#83: potential FC when opening preferences
V.1.1
No change. Grab it from Google Play
V.1.1RC2
no changes, done all the merging and prepared for release
V.1.1RC1
#39: advanced pref to connect to best available network
#80: make sure to always cancel pending alarms when screen is turned on
#81: allow to disable Wifi on function completely
V.1.1B3
#77: widget bg is not 100% transparent
#78: screen on/unlock should always make sure that pending alarms for Wifi-off are canceled
#79: losing connection to access point should never cause handling to get disabled, only user turning Wifi off
V.1.1B2
#19: disable processing when user turns Wifi off using the settings
#70: add second URL for cage detection check
#76: fixed API returning quoted SSIDs (bug found on 4.2)
Compiled with new SDK
V.1.1B1
#69: locale/tasker plugin to enable/disable processing
#71: reduce event logging
#73: fixes for french
#74: widget to control processing (enable/disable)
#75: pref to ignore airplane mode and still enable/disable Wifi
V1RC9
#68: fixed cage detection
V1RC8
#67: fixed SQLite exception and missing perm
V1RC7
#65: respect airplane mode for all screen events
V1RC6
#61: fixed event log sorting to DESC
#62: whitelist shows quotes around some SSIDs
#63: inconsistent placement of pref "if plugged" between simple and expert mode prefs
#64: changes in SSID whitelist are not reflected immediately
V1RC5
New fix for not always visible event log (is not persisitent)
Check for turning Wifi off now goes on every 15 minutes instead of stopping after 5 retries (needed for #51)
#51: rule for leaving Wifi on when screen goes off and SSID whitelisted
#57: fixed whitelist detection not working in RC4
#58: fixed whitelist prefs for post-GB devices
#59: encoding in pref for network activity
#60: SSID should show configured and not available SSIDs
V1RC4
#51: added rule to not turn Wifi off when screen goes off but a whitelisted SSID is connected to (pref)
#54: Alarm should go on every 15 minutes in order to disconnect when whitelisted SSID is not connected anymore
#55: respect airplane mode (do nothing if detected)
#56: reordered prefs by rules for leaving wifi on "when screen on" and "when screen off"
V1RC3
#50: Wifi off delay labels were misleading
#52: whitelist is no multi select list on SDK >= 11
#53: do not check wakelocks when wifi is turned off as a result of "leave Wifi on" rules
V1RC2
#49: added perm to read logs (pre JB)
V1RC1
Cleaned up home screen, moved "disable" to (advanced) prefs
V0.10.1
#48: removed 'grep' command from logcat
V0.10
#41, 43: option to save preferences / logcat as debug info
#42: repertoed typos
#44: added simple and expert preferences
#45: removed own logfile
#46: removed not requires prefs: leave on if in call and if tethering are both always handled
V0.9
#40: don't turn Wifi off is Wifi tethering is active
Added german and french translations
V0.8.1
#31: wifi goes off when unplugged but screen is on
#32: calling the app from notification does not show even log
#33, 35: make pref labels consistent
#37: alarm for turning Wifi off should not obcess
Fix for Wakelock detection
V0.8
#36: added wakelock detection to keep Wifi on when background apps (e.g. streaming) are running
V0.7
#29: a delay of 0 skips some checks before turning Wifi off
#30: fixed binder error
Added better network activity detection before turning Wifi off (besides download manager, see preferences)
V0.6.1
#27, #28: added more logging / event logging
V0.6.
Added icons to action bar (ics+)
#17: keep wifi active when screen goes off and downloads are running or queued
#26: keep wifi active when screen goes off and in a call
V0.5.
#20: (another attempt to fix) fast off/on causes Wifi to be turned off be not canceled alarm
#25: editing SSID whitelist causes the correct connection to be re-validated (after the configured timeout)
V0.4.1.0
#21: Wifilock checkbox on main screen is not sticky
#22: Broadcast handler is not allowed to send events to Service
#23: Wifilock pref caused FC
V0.4.0.1
#20: fast off/on causes Wifi to be turned off be not canceled alarm
V0.4.0
#8: Wifilock when connected and permanent
#9: option to stay on only if connected to a whitelisted SSID
#13: add Wifi power management: high perf Wifilock
#15: fixed bug not disabling all functions
V0.3.1
#7: fix for FC condition on punplug
V0.3
#5: not all actions are documented on screen
#6: option to hold wakelock during plugged to prevent the phone from sleeping
V0.2
#1: removed preference "on only if previously on": far too complex to explain
#3: added a preference to disable the handling
#4: preference to leave Wifi on when screen goes off but phone is on charger
V0.1
- initial beta release
This app aims at giving you the control of the Wifi state, optimizing your battery life without losing on user experience.
Better Wifi on/off releases are available from Google Play. Development versions will be made available on xda for testing new features / fixes.
The app is free, fully featured with ads.
If you want to support me and/or get rid of the ads you can purchase a "support-the-dev" version on google play.
What is the motivation behind controlling Wifi?
On paper Wifi is less power hungry than 3G but... some apps behave differently when Wifi is on (DropBox / Google+ uploads, Google Maps location caching), the well known wlan_rx kernel wakelock is a symptom of wakeups caused by uncontrolled Wifi hotspots, the Wifi sleep policy is not working consistently and does solve all problems.
Settings to control Wifi
The preferences allow you to control Wifi.
The basic rules for keeping Wifi on / turning Wifi off are (will vary based on your settings):
When device is turned on Wifi stays on if: "network is connected" AND "the access point is whitelisted" && "wifi is not caged (a connection to google.com can be made)"
When screen goes off Wifi stays on if: "phone is in call" OR "network activity was detected" OR "tethering is on" OR "wakelocks from other apps using network were detected"
There are of course plenty of settings to change that behavior like e.g. keep Wifi on if connected to A/C, leave Wifi on as long as connected to a whitelisted SSID.
Sources
This project is open source und the Apache license. Please feel free to browser the repo, review, fork it as you like: https://github.com/asksven/BetterWifiOnOff
Bugs / Feature requests
Open bugs and feature requests can be found on github here: https://github.com/asksven/BetterWifiOnOff/issues
If you want to report a bug you can to it there but also simply post it here, I'll take care of documenting it and reply with the issue number for an easier tracking.
Changelog:
V.2.1
- no changes from RC3
V.2.1RC3
- updated russian translation
- added more logging on detected connected SSIDs
V.2.1RC2
#120: a hopefully better fix for cage check timings
#125: added a pref for leaving wfi on when screen goes off but a connection is active
V.2.1RC1
Added direct link to gplay from main screen
V.2.1B3
#120: start thread for cage check earlier (at wifi on)
Added timed checks
Loading application whitelist is asynchronous
V.2.1B2
#115 threaded cage check
Added more logging to solve the "alarm: null" error
Updated russian language file
Added timestamps to logcat output
V.2.1B1
#115: better cage detection
#116: inconsistent messages when enabling/disabling from the widget
#117: inconsistent plug/unplug event messages
#119: null pointer exception with message alarm: null
Fix for detection support the dev version
Older changelogs
V.1.3.0.2
#92: enable/disable messages are shown multiple times and are not consistent to the user events
V.1.3.0.1
#91: Wifi should be turned off when screen is off and whitelisted a/p gets disconnected
V.1.3.0.0 on Google Play
No changes from latest RC
V.2.0
Merged to master
V.2.0RC8
#112: A better fix for donation detection
V.2.0RC7
#112: Fixed donation detection
ActionBar style for pre-ICS phones
V.2.0RC6
#110: fixed CDMA cell collection
V.2.0RC5
#104: added share/save feature
#105: handle CDMA cells
#106: event log on whitelist shows %s instead of real value
#107: added "clear cell log"
#108: null pointer is cellinfo is null
#109: blank SSID causes the A/P to be handled as whitelisted
V.2.0RC4
#103: fixed issue with unfinished database transation
Removed pull-to-refresh as no longer maintained
Optimized dialogs
V.2.0RC3
#11: added cell tower awareness and rule to turn Wifi on only if connected of known cell
#102: app wihtelist does not keep checked apps
V.2.0RC2
#98: add check for whitelisted app: when running Wifi will not be turned off
V.2.0RC1
Uses ActionBarSherlock for same UX on all android versions
Use Pull-to-Refresh to update list
#95: enabling with widget turns wifi on
#96: avoid scheduling wifi off when screen goes off but wifi is off already
#100: preference to select between light and dark theme
Added russian
V.1.3.0.0RC2
#90: wrong message when user disables/enables processing by tapping the widget
V.1.3.0.0RC1
#88: When disregard airplane mode is enabled wifi is not turned on when screen is turned on
#89: disabling / enabling handling based on user action on wifi outside of BWOF should be logged
New readme and rate dialogs
V.1.2.0.0
No change from RC1
V.1.2.0.0RC1
#82: pref to re-enable BWOF when Wifi is turned on manually
#84: conneting power does not respect airplane mode
#85: when pref is undefined turning screen on enables wifi even if this action is set on unlock
V.1.1.1.0
Fixed various FC conditions from logs/gplay dumps
V.1.1.0.1
#83: potential FC when opening preferences
V.1.1
No change. Grab it from Google Play
V.1.1RC2
no changes, done all the merging and prepared for release
V.1.1RC1
#39: advanced pref to connect to best available network
#80: make sure to always cancel pending alarms when screen is turned on
#81: allow to disable Wifi on function completely
V.1.1B3
#77: widget bg is not 100% transparent
#78: screen on/unlock should always make sure that pending alarms for Wifi-off are canceled
#79: losing connection to access point should never cause handling to get disabled, only user turning Wifi off
V.1.1B2
#19: disable processing when user turns Wifi off using the settings
#70: add second URL for cage detection check
#76: fixed API returning quoted SSIDs (bug found on 4.2)
Compiled with new SDK
V.1.1B1
#69: locale/tasker plugin to enable/disable processing
#71: reduce event logging
#73: fixes for french
#74: widget to control processing (enable/disable)
#75: pref to ignore airplane mode and still enable/disable Wifi
V1RC9
#68: fixed cage detection
V1RC8
#67: fixed SQLite exception and missing perm
V1RC7
#65: respect airplane mode for all screen events
V1RC6
#61: fixed event log sorting to DESC
#62: whitelist shows quotes around some SSIDs
#63: inconsistent placement of pref "if plugged" between simple and expert mode prefs
#64: changes in SSID whitelist are not reflected immediately
V1RC5
New fix for not always visible event log (is not persisitent)
Check for turning Wifi off now goes on every 15 minutes instead of stopping after 5 retries (needed for #51)
#51: rule for leaving Wifi on when screen goes off and SSID whitelisted
#57: fixed whitelist detection not working in RC4
#58: fixed whitelist prefs for post-GB devices
#59: encoding in pref for network activity
#60: SSID should show configured and not available SSIDs
V1RC4
#51: added rule to not turn Wifi off when screen goes off but a whitelisted SSID is connected to (pref)
#54: Alarm should go on every 15 minutes in order to disconnect when whitelisted SSID is not connected anymore
#55: respect airplane mode (do nothing if detected)
#56: reordered prefs by rules for leaving wifi on "when screen on" and "when screen off"
V1RC3
#50: Wifi off delay labels were misleading
#52: whitelist is no multi select list on SDK >= 11
#53: do not check wakelocks when wifi is turned off as a result of "leave Wifi on" rules
V1RC2
#49: added perm to read logs (pre JB)
V1RC1
Cleaned up home screen, moved "disable" to (advanced) prefs
V0.10.1
#48: removed 'grep' command from logcat
V0.10
#41, 43: option to save preferences / logcat as debug info
#42: repertoed typos
#44: added simple and expert preferences
#45: removed own logfile
#46: removed not requires prefs: leave on if in call and if tethering are both always handled
V0.9
#40: don't turn Wifi off is Wifi tethering is active
Added german and french translations
V0.8.1
#31: wifi goes off when unplugged but screen is on
#32: calling the app from notification does not show even log
#33, 35: make pref labels consistent
#37: alarm for turning Wifi off should not obcess
Fix for Wakelock detection
V0.8
#36: added wakelock detection to keep Wifi on when background apps (e.g. streaming) are running
V0.7
#29: a delay of 0 skips some checks before turning Wifi off
#30: fixed binder error
Added better network activity detection before turning Wifi off (besides download manager, see preferences)
V0.6.1
#27, #28: added more logging / event logging
V0.6.
Added icons to action bar (ics+)
#17: keep wifi active when screen goes off and downloads are running or queued
#26: keep wifi active when screen goes off and in a call
V0.5.
#20: (another attempt to fix) fast off/on causes Wifi to be turned off be not canceled alarm
#25: editing SSID whitelist causes the correct connection to be re-validated (after the configured timeout)
V0.4.1.0
#21: Wifilock checkbox on main screen is not sticky
#22: Broadcast handler is not allowed to send events to Service
#23: Wifilock pref caused FC
V0.4.0.1
#20: fast off/on causes Wifi to be turned off be not canceled alarm
V0.4.0
#8: Wifilock when connected and permanent
#9: option to stay on only if connected to a whitelisted SSID
#13: add Wifi power management: high perf Wifilock
#15: fixed bug not disabling all functions
V0.3.1
#7: fix for FC condition on punplug
V0.3
#5: not all actions are documented on screen
#6: option to hold wakelock during plugged to prevent the phone from sleeping
V0.2
#1: removed preference "on only if previously on": far too complex to explain
#3: added a preference to disable the handling
#4: preference to leave Wifi on when screen goes off but phone is on charger
V0.1
- initial beta release
Attachments
-
BetterWifiOnOff_1.1.1.0.apk355.6 KB · Views: 1,117
-
BetterWifiOnOff_1.2.0.0.apk359.2 KB · Views: 470
-
BetterWifiOnOff_1.3.0.1.apk364.8 KB · Views: 474
-
BetterWifiOnOff_1.3.0.2.apk364.6 KB · Views: 717
-
BetterWifiOnOff_2.0.0.0.apk1 MB · Views: 563
-
BetterWifiOnOff_2.1.0.0B1.apk1 MB · Views: 486
-
BetterWifiOnOff_2.1.0.0B2.apk1 MB · Views: 666
-
BetterWifiOnOff_2.1.0.0B3.apk1 MB · Views: 436
-
BetterWifiOnOff_2.1.0.0RC1.apk1 MB · Views: 592
-
BetterWifiOnOff_2.1.0.0RC2.apk1.1 MB · Views: 564
-
BetterWifiOnOff_2.1.0.0RC3.apk1.1 MB · Views: 615
-
BetterWifiOnOff_2.1.0.0.apk1.1 MB · Views: 6,056
Last edited: