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