Windows Phone 8 Battery API
The Battery API makes a nice addition to the WP8 SDK.
I can see in the near future that some applications will display the battery metrics on a Live Tile or in the application that hides the System Tray.
The Battery API is pretty easy to use:
1- Get the Battery instance with Battery.GetDefault().
2- Bind to the event RemainingChargePercentChanged.
The battery properties are:
– RemainingChargePercent: gets a value that indicates the percentage of the charge remaining on the phone’s battery.
– RemainingDischargeTime: gets a value that estimates how much time is left until the phone’s battery is fully discharged.
With the following code:
using Windows.Phone.Devices.Power; namespace BatteryApp { public partial class MainPage { private readonly Battery _battery; public MainPage() { InitializeComponent(); _battery = Battery.GetDefault(); _battery.RemainingChargePercentChanged += OnRemainingChargePercentChanged; UpdateUI(); } private void OnRemainingChargePercentChanged(object sender, object e) { UpdateUI(); } private void UpdateUI() { textBlockRemainingCharge.Text = string.Format("{0} %", _battery.RemainingChargePercent); textBlockDischargeTime.Text = string.Format("{0} minutes", _battery.RemainingDischargeTime.TotalMinutes); } } }
You get:
Please note that when running this on the emulator, it will show 100% and an infinite discharge time. The above values are fake.
Get ready to code!
Philippe Thibault
Aug 01, 2012 @ 23:20:12
Application developers could also use this to monitor the battery level and turn off, or prompt the user to turn off, CPU/GPU/Network intensive components of the app.
PHenry
Aug 02, 2012 @ 12:09:09
Oh this is too cool! Something I’ve been HOPING would come for a very long time! Well, pretty much since the beginning! :> Thanks for the heads up!
Andrew Kim
Feb 08, 2013 @ 22:58:20
Thanks so much! Really useful!