SYSTEM_POWER_STATUS
構造体を使用してWindows上で動作するコードです。
これが機能するには、(Maven)依存関係にjna
を追加する必要があることに注意してください。あなたのコードで
import java.util.ArrayList;
import java.util.List;
import com.sun.jna.Native;
import com.sun.jna.Structure;
import com.sun.jna.win32.StdCallLibrary;
public interface Kernel32 extends StdCallLibrary
{
public Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("Kernel32",
Kernel32.class);
public class SYSTEM_POWER_STATUS extends Structure
{
public byte ACLineStatus;
@Override
protected List<String> getFieldOrder()
{
ArrayList<String> fields = new ArrayList<String>();
fields.add("ACLineStatus");
return fields;
}
public boolean isPlugged()
{
return ACLineStatus == 1;
}
}
public int GetSystemPowerStatus(SYSTEM_POWER_STATUS result);
}
はこのようにそれを呼び出す:
Kernel32.SYSTEM_POWER_STATUS batteryStatus = new Kernel32.SYSTEM_POWER_STATUS();
Kernel32.INSTANCE.GetSystemPowerStatus(batteryStatus);
System.out.println(batteryStatus.isPlugged());
結果:
true if charger is plugged in false otherwise
これはBalsusC's answerをオフに導出されました。
プラットフォーム固有の可能性が高いため、プラットフォーム(OS)を知ることが役立ちます。 – jsight
ちょっと不思議なことに、なぜ動詞を親密に使っているのですか?それは奇妙に聞こえる。あなたは別の言葉を使うことを意味しましたか、それとも何らかの電子メールapiですか? – Victor
私は窓の眺めを使用しています、そして、 "親密な"のために、タイプミスは "知らせる"べきです:$。 – vcosk