2013-02-28 2 views
0

Использование библиотеки Java JNA с использованием How to get the remaining battery life in a Windows system? в качестве справки, я создал программу. К сожалению, функция BatteryLife Percent, как описано в http://msdn.microsoft.com/en-us/library/aa373232.aspx, отображается как -1 или неизвестна. Может ли кто-нибудь объяснить, как сделать его известным? Я знаю, что это кажется глупым вопросом, но я не могу заставить его работать. Значок аккумулятора на панели задач показывает процентный тон, и, поскольку он также, скорее всего, использует ту же функцию, я думаю, что в библиотеке JNA может быть что-то не так.Батарея Процент

+0

SO вопрос вы ссылаетесь (http://stackoverflow.com/questions/3434719/how-to-get-the-remaining-battery-life-in-a -windows-system) отлично работает, чтобы получить информацию о батарее. – Java42

+0

@ChuckFricano Выходной сигнал я вижу ACLineStatus: Offline батареи Флаг: неизвестно Срок службы батареи: Неизвестный Аккумулятор Слева: 0 секунд полного заряда аккумулятора: 6829 секунд, я хотел бы видеть% вместо Unknown –

+0

Когда я запускаю этот код Я получаю ACLineStatus: Offline, Battery Flag: низкий, менее 33 процентов, срок службы батареи: 29%, батарея слева: 5904 секунды, полная батарея: неизвестно. Вы должны добавить свой код и результаты к вопросу, но решение в вопросе 3434719 отлично работает для меня. – Java42

ответ

0

У меня была та же проблема, и я это исправил. Я использовал то же самое решение, что и вы, и выяснил, что порядок полей в 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; 
} 
Смежные вопросы