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);
}
}
}

battery_screen

Please note that when running this on the emulator, it  will show 100% and an infinite discharge time. The above values are fake.

By Enrico

My greatest passion is technology. I am interested in multiple fields and I have a lot of experience in software design and development. I started professional development when I was 6 years. Today I am a strong full-stack .NET developer (C#, Xamarin, Azure)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.