Il peut parfois être intéressant d’avertir l’utilisateur que la batterie commence à s’épuiser avant que son Windows Phone soit à plat !
Suite à mon précédent article , j’ai continué à m’intéresser à ce sujet de la consommation.
Notez que c’est valide que pour le SDK Windows Phone 8.
Donc après Windows.Phone.System.Power on a Windows.Phone.Devices.Power
Et comme d’habitude, c’est à nouveau hyper ultra super facile. (Je vois même pas pourquoi je vous en parle d’ailleurs ? ca doit être thérapeutique)
la class Battery
Elle possède un seul évènement nommé RemainingChargePercentChanged qui va être levé lorsque la batterie va diminué de 1%. Oui que diminué, ça aurait pu être sympa de dire à l’utilisateur connecté au secteur : « Vous venez de remportez 1% de batterie en plus ! Vous gagner le badge SUPERMAN » … mais…non pas là.
Et puis on a deux propriétés RemainingChargePercent et RemainingDischargeTime qui nous retourne le pourcentage restant et le temps restant estimé.
le petit bout de code qui va bien
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
showBatt();
Battery.GetDefault().RemainingChargePercentChanged
+= MainPage_RemainingChargePercentChanged;
}
void MainPage_RemainingChargePercentChanged(object sender, object e)
{
showBatt();
}
void showBatt()
{
TxtBlock.Text =
String.Format("{0} %. ", Battery.GetDefault().RemainingChargePercent);
TimeSpan remains;
remains = Battery.GetDefault().RemainingDischargeTime;
if (remains.TotalHours < 25)
{
TxtBlock.Text +=
String.Format("Durée restante : {0:0.#} heures.", remains.TotalHours);
}
else if (remains.TotalHours < 1)
{
TxtBlock.Text +=
String.Format("Durée restante : {0:0.#} minutes.", remains.TotalMinutes);
}
else if (remains.TotalDays > 1)
{
TxtBlock.Text +=
String.Format("Durée restante : {0:0.#} jours.", remains.TotalDays);
}
}
Détails sur MSDN : /library/windowsphone/develop/windows.phone.devices.power.battery
