BattMonX

 
BattMonX is a battery monitoring utility that can indicate the current state of your phone's battery via a status bar icon (all phones) and/or the LED indicator (many phones).

You can select/assign a different color to the status bar icon and/or LED indicator (if enabled and supported) for each of BattMonX's two main monitoring modes:

 - by charging state

  * full / charged
  * charging
  * discharging

 - by each 10% range in battery percent-charged

Additionally, you can monitor, for each of the above modes:

  * high battery temperature

  * low battery percent charged

Note: when enabled, the above two modes:

 - take precedence over all others

 - have selectable thresholds

 - optional vibrate or sound alerting

OTHER APP HIGHLIGHTS & FEATURES

 - selectable LED on, off, or blink action

 - LED color tester

 - auto-restart after boot option

 - battery temperature and voltage reported in notification shade pulldown

 - option for rooted phones to have LED turn on even when screen is on

 - now shows 1% change in percent-charged for Droid X

LED STATUS COMPATIBILITY
 
The LED function of this app will not work on all phones. For example, the Samsung Vibrant and Captivate do not have LED indicators. Some phones only have a two-color LED (the HTC Eris and Evo 4G both have a green/amber LED; the Epic 4G supports a red/blue LED) which might allow for partial functionality from this app (especially if rooted). 

LED functionality works wonderfully for the Motorola Droid-class phones (original Droid, Droid X, Droid 2, Droid 2 Global, Milestone). If your phone has a multi-color LED indicator and you have problems get the app to work, please contact me  for debugging options.

PERMISSIONS

- BattMonX monitors for the receipt of SMS message notifications (android.permission.RECEIVE_SMS) for the purpose of stepping-aside when an SMS text arrives so that the SMS notification (i.e., blinking green LED) can be displayed. No actual SMS messages are read--the app only receives the SMS broadcast action.

- The app also receives a notification of when the phone has rebooted (android.permission.RECEIVE_BOOT_COMPLETED) for the purpose of restarting the battery state monitoring automatically after a reboot. You can enable or disable this feature in the menu (Preferences / Settings -> Set On Boot (checked or un-checked)).

- BattMonX uses the android.permission.WRITE_EXTERNAL_STORAGE to create a temporary file on the /sdcard containing the list of files in the /sys/devices/platform directory structure in order to automatically identify the battery state (status and capacity) and LED notification (<led-color>/brightness) files.

- The app also uses a partial wake-lock (android.permission.WAKE_LOCK) to keep the app awake for one minute after the screen is turned off. Additionally, you can enable a persistent wake-lock via the menu -> Experimental Settings -> Keep CPU On. Use caution when using this since it will cause your phone to remain awake and use more battery while this option is enabled and the app is actively monitoring.

- Version 2.4 introduced the ability to have the phone vibrate when either the high battery temperature or low battery percent charge monitoring is enabled. This is the reason for the android.permission.VIBRATE permission.


Thanks again to everyone for their feedback and suggestions!
 
Please contact me at scary.alien@gmail.com is you have any issues, questions, comments, or suggestions. Cheers!


Screen Shots:
 

                                
                           
                        
Change Log:

Version 2.4 - 26-Mar-2011:

- app should now work on all Android devices by using system intents (now the default setting) vs. reading battery status files (still supported)

- notification changes: make app launch when pull-down notification selected; option to allow notification to be cleared; add battery temperature & voltage to notification shade details

- supported low-battery condition sound or vibrate alert

- supported high battery temperature monitoring similar to low-battery monitoring (especially useful for those who overclock or tether)

- make low-battery & high-temp monitoring independent from the two main monitoring modes

- show change log at first/fresh install

- revised menus to reference 'status' instead of 'LED' to indicate support of both status bar icon and LED

- fixed issue w/LED color none/off not showing status bar notification

- supported logging of trace messages to SD card file for debugging if needed

- added donate button

- lots of minor fixes and improvements

Version 2.3 - 14-Mar-2011:

- support option to display status bar notification icon with battery percent charged
- support option to turn off use of LED battery state indication
- more accurate app behavior for Moto Droid-class phones via 1% charge delta vs. original 10% delta
- support blink action for monitor-by-percent charged mode (screen off only)
- additional logic to try to support other phones like Sony Ericsson Xperia x10 family 
- lots of app cleanup; re-organized preferences / settings menus

Version 2.0 - 21-Feb-2011:

- added more strategies for making the app more responsive when screen off & unplugged

- added 'Set LED Colors by Percent Charged' feature

- added 'Rainbow Mode' (under Fun Stuff) to cycle through the various LED colors

- added 'Keep CPU On' feature to allow you keep the CPU awake/on when the screen is turned off -- Warning: will consume more battery!

- added preset-color buttons to LED color tester (easier to test main colors)
          
Version 1.9 - 22-Jan-2011:  

- replaced percent-sign character displayed in preference/settings causing FCs in CyanogenMod ROMs running on Droid Milestone

- fixed issue w/lost screen on/off monitoring intent

- added warning pop-up when blink action selected and LED-always-ON enabled (can't blink w/LED-always-ON yet)          

[version 1.8 - 16-Jan-2011]:

- supported new experimental features:

  * ability to keep LED on while the screen is on (root only)

  * support white LED color (root only)

- updated w/better strategy for dynamically locating battery state and LED notification files to TRY to support non-Moto Droid phones

- added 'Suspend' checkbox feature to screen to turn off LED and pause battery status monitoring until resumed (un-checked)

- added strategy to make app more timely/responsive to SMS text notifications and preference/setting changes

- fixed set-on-boot and charging-color preference mis-match and other minor preference/settings issues  

- supported amber LED color in addition to the original red/green/blue LED colors
 
[version 1.7 changes]:
 
- added strategy to auto-recover from Android auto-killing the app's service
- replaced multiple menu settings w/standard Settings/Preferences menu item
- dynamically determine battery status directory
- re-instituted screen lock to portrait mode to prevent orientation change from causing FCs
- fixed integer parsing issue causing some reported crashes (from reading battery capacity file)
- added option for 3 minute polling-interval
- added larger range for low-battery percentage threshold
- fixed issue where LED would not blink when charging

[version 1.6 23-December-2010]:
 
* made app work alongside SMS text notifications; app will allow normal green/blinking SMS text LED
  behavior and will resume battery state monitoring at start of next polling interval
 
* added option / ability to set LED ON or blink action for charging/discharged/charged battery states
  (this functionality was already present for the low-battery monitoring option)
 
[version 1.5 20-December-2010]:
 
* fixed issue parsing integers from saved preferences causing some reported crashes
 
* fixed BufferedReader logcat message

[version 1.4 19-December-2010]:

* supported optional low-battery status indicator:

  - action: none, LED on, LED blink
  - threshold: 10%, 20%, 30%, or 40%
  - LED color

* supported new LED colors in addition to the original red, green, blue, yellow, and OFF:

  - dark orange
  - orange
  - dark violet
  - dark green
  - deep sky blue


[version 1.3 - 11-Dec-2010]:

 - support 'set on boot' menu option and functionality

[version 1.2 - 2-Dec-2010]:

 - minor cleanup, tweaks to menu items
 - rescinded portrait-mode orientation lock (although display is not really useful in landscape mode ;)
 - for new installs, restored default discharging color to OFF instead of the color BLUE
 - increased default polling-interval to 60 seconds  

[version 1.1 - 1-Dec-2010]:

 - fixed issue with orphan LED assignment keeping LED lit after monitoring has stopped; LED is now explicitly turned off on exit
 - added menu options for assigning different LED colors to the various battery charging states
 - added menu option to select different polling intervals
 - display if battery monitoring is currently active
 - added menu option to display current settings
 - locked screen to portrait mode to prevent orientation change from re-launching UI
 - now only display warning for non-Droid X phones once
 - prepared code for other, future enhancements

[version 1.0 - 28-Nov-2010]:

 - initial Android Market release

Comments