3

所以我的方法如下:

PowerStatus powerStatus = SystemInformation.PowerStatus;

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

从我的测试系统中,我得到了各种各样的结果,例如:

高的,

低的,

收费,

高充电

低,正在充电

低,关键

这是奇怪的... 0?

我想这与BatteryChargeStatus 枚举有关

4

1 回答 1

4

他们错过了一个。从底层SYSTEM_POWER_STATUS操作系统声明的文档中:

如果电池未充电且电池容量介于低和高之间,则该值为零

因此,只需自己制作,例如:

    var status = SystemInformation.PowerStatus.BatteryChargeStatus;
    if (status != BatteryChargeStatus.NoSystemBattery) {
        var batteryStatus = status == 0 ? "Not charging" : status.ToString();
        // etc...
    }
于 2014-09-30T15:26:44.277 回答