Advertisement
Advertisement

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:

Advertisement
  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.

Advertisement

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.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.