2013-08-30 13 views
6

Come ottenere il livello di carica della batteria in% in Java in modo indipendente dalla piattaforma?Come ottenere il livello di carica della batteria in% in Java in modo indipendente dalla piattaforma?

Esiste già una domanda per Windows per questo: How to get the remaining battery life in a Windows system?

E per Mac: Get battery level in Java

Ma come posso farlo in un modo indipendente dalla piattaforma, quindi funziona su Windows, Mac, Linux e forse anche altre piattaforme?

+1

Poiché tutte queste risposte richiedono una sorta di codice nativo per accedere a tali informazioni, è comunque necessario fornire un'implementazione per ogni piattaforma supportata. In tal caso potresti provare a creare la tua interfaccia comune. – Thomas

risposta

6

Non esiste un modo "indipendente dalla piattaforma" per leggere i livelli della batteria; quel tipo di informazioni sull'hardware è estremamente specifico per il sistema operativo. L'unico modo per avere un'interfaccia Java "indipendente dalla piattaforma" sarebbe scrivere un wrapper JNI per ogni piattaforma di destinazione.

(In realtà, su Linux è piuttosto semplice, tutte queste informazioni sono esposte come file di testo sotto /proc/acpi/battery, quindi non ci sarebbe bisogno di alcun JNI lì. Non penso che OS X abbia la stessa presentazione amichevole, e io " m piuttosto certo che Windows non lo sia.)

1

Non penso che ci sia un modo per farlo, una volta stavo scrivendo un progetto per ottenere dettagli HW della macchina Windows come la temperatura della CPU, e ho dovuto usare l'interfaccia java nativa con specifiche librerie. Ottenere questo per diverse versioni di Windows non era così semplice, quindi non penso che tu possa farlo.

Problemi correlati