2015-11-04 1 views
1

Spécifiquement je veux dire la santé de la batterie, le niveau de charge, la tension. Il ne semble pas qu'il existe un moyen facile de le faire. Est-ce que quelqu'un sait s'il existe un moyen facile ou non, comment le mettre en œuvre?Comment obtenir des informations sur la batterie sur Mac?

+1

Il y a ma version Swift [dans cette réponse] (http://stackoverflow.com/questions/31633503/fetch-the-battery-status-of-my-macbook-with-swift/31659561#31659561), il se peut T'aider. Ignorez simplement la première partie de l'en-tête de pontage et importez comme vous le feriez habituellement. – Moritz

+0

Je veux plus d'informations comme la température de la batterie, l'âge, le fabricant comme le montre System Profiler. La réponse de jBot-42 est la meilleure mais je ne peux pas l'accepter pendant 9 minutes. – ssccsscc

Répondre

1

J'ai créé un framework open-source et facile à utiliser appelé SystemInfoKit pour obtenir toutes les informations système, le processeur, la mémoire, l'utilisation du réseau et les températures.

est ici tout le code nécessaire pour obtenir toutes les informations de la batterie:

// At top of file 
#import <SystemInfoKit/SystemInfoKit.h> 

JSKSystemMonitor *systemMonitor = [JSKSystemMonitor systemMonitor]; 

JSKMBatteryUsageInfo batteryUsageInfo = systemMonitor.batteryUsageInfo; 

NSLog(@"Battery Installed: %hhd", batteryUsageInfo.present); 
NSLog(@"Battery Fully Charged: %hhd", batteryUsageInfo.full); 
NSLog(@"Battery Connected To Charger: %hhd", batteryUsageInfo.acConnected); 
NSLog(@"Battery Charging: %hhd", batteryUsageInfo.charging); 

NSLog(@"Battery Voltage: %f V", batteryUsageInfo.voltage); 
NSLog(@"Battery Amperage: %f A", batteryUsageInfo.amperage); 

NSLog(@"Battery Design Capacity: %f mAh", batteryUsageInfo.designCapacity); 
NSLog(@"Battery Maximum Capacity: %f mAh", batteryUsageInfo.maximumCapacity); 
NSLog(@"Battery Current Capacity: %f mAh", batteryUsageInfo.currentCapacity); 

NSLog(@"Battery Design Cycle Count: %lu Cycles", batteryUsageInfo.designCycleCount); 
NSLog(@"Battery Cycle Count: %lu Cycles", batteryUsageInfo.cycleCount); 
NSLog(@"Battery Age: %lu Days", batteryUsageInfo.ageInDays); 

Plus d'info est here.

+0

Peut-être que votre bibliothèque est utile, mais pour augmenter la qualité de votre réponse, il serait préférable d'inclure du code sur la façon d'obtenir les informations de la batterie avec votre bibliothèque. – JAL

+1

C'est merveilleux. Je n'avais aucune idée que ça pourrait être aussi simple. Les trucs de température sont géniaux aussi. – ssccsscc

+0

@ssccsscc Avez-vous de la documentation/tutoriel sur sa page github et le code source de SystemInfoKit? L'utilisateur a tout supprimé – SkrewEverything

1

Les fonctions IOPowerSources dans IOKit peuvent être utilisées pour obtenir des informations sur l'état de la batterie.