Процент батареи
Использование библиотеки Java JNA с помощью Как получить оставшееся время автономной работы в системе Windows? в качестве ссылки, я сделал программу. К сожалению, функция BatteryLife Percent, описанная по адресу http://msdn.microsoft.com/en-us/library/aa373232.aspx отображается как -1 или неизвестна. Кто-нибудь может объяснить, как сделать это известным? Я знаю, что это кажется глупым вопросом, но я не могу заставить его работать. Значок батареи на панели задач показывает процент в порядке, и, поскольку он также, скорее всего, использует ту же функцию, я думаю, что может быть что-то не так с библиотекой JNA.
1 ответ
У меня была такая же проблема, и вот как я ее исправил. Я использовал то же решение, что и вы, и обнаружил, что порядок полей в getFieldOrder() важен, иначе вы получите неправильный вывод. Он должен быть таким же, как в используемой вами структуре SYSTEM_POWER_STATUS. Позиция Reserved1 кажется неактуальной:
@Override
protected List getFieldOrder() {
ArrayList<String> fields = new ArrayList<String>();
fields.add("ACLineStatus");
fields.add("BatteryFlag");
fields.add("BatteryLifePercent");
fields.add("BatteryLifeTime");
fields.add("BatteryFullLifeTime");
fields.add("Reserved1");
return fields;
}