Вызов PowerStatus.BatteryChargeStatus.ToString() иногда возвращает 0

Итак, мой метод заключается в следующем:

PowerStatus powerStatus = SystemInformation.PowerStatus;

if (powerStatus.BatteryChargeStatus != BatteryChargeStatus.NoSystemBattery)
{
    var batteryStatus = powerStatus.BatteryChargeStatus.ToString()
}

Из моих тестовых систем я получаю широкий спектр результатов, таких как:

Высоко,

Низкий,

Зарядка,

Высокая зарядка

Низкий зарядка

Низкий, Критический

и вот странный... 0?

Я полагаю, что это как-то связано с BatteryChargeStatus Enum

1 ответ

Решение

Они пропустили один. Из документов базовой декларации операционной системы SYSTEM_POWER_STATUS:

Значение равно нулю, если батарея не заряжается, а емкость батареи находится между низким и высоким

Так что просто придумайте, как:

    var status = SystemInformation.PowerStatus.BatteryChargeStatus;
    if (status != BatteryChargeStatus.NoSystemBattery) {
        var batteryStatus = status == 0 ? "Not charging" : status.ToString();
        // etc...
    }
Другие вопросы по тегам