引言:
在Windows Phone 7.5时代, 由于API层面有着诸多限制,导致开发者们获取设备电源的相关信息是不可能的任务, 好在WP8 SDK中加入了对此方面的支持, 这样的话, 我们就可以在应用中拿到电源的剩余电量百分比,剩余使用时间等.
1、需要哪些命名空间?处理哪些事件?获取哪几个属性值?
主要用到2个属性:
Battery.RemainingChargePercent:获取手机电源剩余电量的百分比。
Battery.RemainingDischargeTime:获取手机电源剩余显示时间.
Battery.RemainingChargePercentChanged:剩余电量发生变化时的事件处理。
2、设计逻辑:
启动应用时,在MainPage的构造函数中获取当前设备的电源对象,同时声明当电量发生改变时的委托处理。
定义一个更新用户界面的方法,当有任何电量发生变化后,及时与UI进行交互。
3、实现功能代码如下:
using Windows.Phone.Devices.Power;
public partial class SystemPage : PhoneApplicationPage
{
readonly Battery _battery;
public SystemPage()
{
InitializeComponent();
//获取当前设备电源对象,注意:不需要创建对象实体
_battery = Battery.GetDefault();
_battery.RemainingChargePercentChanged += _battery_RemainingChargePercentChanged;
//更新用户界面操作
UpdateUI();
}
//电源百分比变化时,及时更新UI
void _battery_RemainingChargePercentChanged(object sender, object e)
{
UpdateUI();
}
void UpdateUI()
{
this.tblBatteryChargePercent.Text = string.Format("{0} %", _battery.RemainingChargePercent);
//显示剩余电量使用时间,注意:RenainingDischargeTime包含多种格式的时间显示方式,可自行取值。
this.tblBatteryDisplayTime.Text = string.Format("{0} 分钟", _battery.RemainingDischargeTime.TotalMinutes);
}
}
4、以上代码最终的实现如下:
原文:http://jasonwei.com/archives/457