// der dazu gehörige C Code (geht bestimmt schöner, aber bin halt kein C Programmierer)
#include "batteryStatus_SystemPowerStatus.h"
#include <windows.h>
#include <stdio.h>
JNIEXPORT void JNICALL Java_batteryStatus_SystemPowerStatus_getSystemPowerStatus(JNIEnv *env, jobject obj) {
SYSTEM_POWER_STATUS status;
jclass jcls;
jmethodID jmid;
BOOL valid;
jcls = (*env)->GetObjectClass(env, obj);
valid = GetSystemPowerStatus(&status);
if (valid) {
jmid = (*env)->GetMethodID(env, jcls, "setAcLineStatus", "(S)V");
if (jmid != 0) {
(*env)->CallVoidMethod(env, obj, jmid, status.ACLineStatus);
}
jmid = (*env)->GetMethodID(env, jcls, "setBatteryFlag", "(S)V");
if (jmid != 0) {
(*env)->CallVoidMethod(env, obj, jmid, status.BatteryFlag);
}
jmid = (*env)->GetMethodID(env, jcls, "setBatteryLifePercent", "(S)V");
if (jmid != 0) {
(*env)->CallVoidMethod(env, obj, jmid, status.BatteryLifePercent);
}
jmid = (*env)->GetMethodID(env, jcls, "setReserved1", "(S)V");
if (jmid != 0) {
(*env)->CallVoidMethod(env, obj, jmid, status.Reserved1);
}
jmid = (*env)->GetMethodID(env, jcls, "setBatteryLifeTime", "(I)V");
if (jmid != 0) {
(*env)->CallVoidMethod(env, obj, jmid, status.BatteryLifeTime);
}
jmid = (*env)->GetMethodID(env, jcls, "setBatteryFullLifeTime", "(I)V");
if (jmid != 0) {
(*env)->CallVoidMethod(env, obj, jmid, status.BatteryFullLifeTime);
}
}
}