2008-11-07 5 views
26

Comment puis-je lire l'état de la batterie de mon MacBookPro à partir de ma propre application? Google n'a jusqu'à présent révélé que des API pour les pilotes de périphériques pour gérer les événements d'alimentation - il n'y a rien à propos des processus utilisateur-terrain accédant à ces informations.État de la batterie dans OSX?

merci.

Répondre

23

Vous voudrez utiliser IOKit pour cela, en particulier le IOPowerSources functions. Vous pouvez utiliser IOPSCopyPowerSourcesInfo() pour obtenir un blob et IOPSCopyPowerSourcesList() pour en extraire un CFArray, répertoriant les sources d'alimentation. Ensuite, utilisez IOPSGetPowerSourceDescription() pour sortir un dictionnaire (voir IOPSKeys.h pour le contenu du dictionnaire).

+0

merci - c'est exactement ce que je cherchais. – Alnitak

-1

Regardez le contrôleur de gestion du système. Je n'ai pas mon MBP à portée de main, mais je crois que vous devez regarder smc.h

71

Si vous cherchez un moyen rapide d'interroger à partir de la ligne de commande, vous trouverez la commande pmset utile. Pour interroger l'état de la batterie, en particulier, utilisez:

 
$ pmset -g batt 
+2

Ceci est particulièrement utile lorsque vous utilisez votre Mac à distance via SSH. Il est bon de savoir si vous avez besoin de sprint pour vous connecter à l'AC! – ScrollerBlaster

+4

curieux que cela a eu tant de upvotes, quand c'est explicitement un appel API que je cherchais (par la réponse que j'accepte) – Alnitak

+3

Plausibly parce que le titre de la question/tags ne distingue pas entre scripts/CLI et contextes compilés, tant (comme moi-même) trouver une réponse banalement trivial plus utile qu'une réponse qui m'oblige à tomber dans un lang compilé spécifique. – xander

Questions connexes