22 novembre 2024

Développer vert sur Windows Phone en C#

camoufMon autre copain David Poulin m’a fait découvrir ce matin la classe DeviceStatus et ma vie a changée ! En creusant un peu j’ai découvert comment je pouvais créer une application bio qui fait attention à l’utilisation de la batterie !

DeviceStatus, mais comment pouvait-on faire plus simple (dès Windows Phone 7.1) : DeviceStatus sur MSDN

 

PowerSource

Cette propriété nous permet de connaître simplement le type d’alimentation de notre cher Windows Phone, c’est à dire lorsque l’on est alimenté via la prise USB et là c’est la fête on pousser mémère (enfin notre application) à fond ou lorsque l’on est sur batterie. Ainsi grâce à l’évènement PowerSourceChanged notre application peut être averti du changement de source :

public MainPage()
{
    InitializeComponent();

    this.Loaded += MainPage_Loaded;
}

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    DeviceStatus.PowerSourceChanged += DeviceStatus_PowerSourceChanged;
}

void DeviceStatus_PowerSourceChanged(object sender, EventArgs e)
{
    Dispatcher.BeginInvoke(() =>
    {
        if (DeviceStatus.PowerSource == PowerSource.Battery)
        {
            MessageBox.Show("On est sur batterie");
        }
        else
        {
            MessageBox.Show("On est connecté à l'USB");
        }
    });
}

Alors ça c’est tout bon jusque Windows 7.x. Windows Phone 8.0 peut encore aller plus loin ! Oui vous avez bien entendu, une révolution ce dernier : Accrochez vous car avec PowerManager, et bien on envoi mémère se coucher !

PowerManager

Avec la class PowerManager (ça arrache comme nom vous trouvez pas ?) on peut connaître si l’économie d’énergie du smartphone est active ou pas aussi simplement que ça :

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    Windows.Phone.System.Power.PowerManager.PowerSavingModeChanged 
        += PowerManager_PowerSavingModeChanged;

}

private void PowerManager_PowerSavingModeChanged(object sender, object e)
{
    Dispatcher.BeginInvoke(() =>
    {
        if (PowerManager.PowerSavingMode == PowerSavingMode.On)
        {
            MessageBox.Show("Economie d'énergie activée");
        }
        else
        {
            MessageBox.Show("Economie d'énergie désactivé");
        }

    });
}

Voilà, on a de quoi faire attention à la dépense énergétique du smartphone de utilisateur et pouvoir développer avec un verre :
HKT_0160

Une réflexion sur « Développer vert sur Windows Phone en C# »

Laisser un commentaire