22 décembre 2024

Verifiez votre batterie avant l’hiver

batterie windows phoneIl 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

Laisser un commentaire