[英]How to get the battery life of mac os x macbooks programatically?
我想要做的是记录电池百分比。 我知道linux中的等价物是sysctl(hw.acpi.battery.life)。 但是,当我在mac os x中经历了sysctl的人时,我找不到找到它的等效代码。 有人可以指出如何使用目标c来做到这一点。 我可以调用sysctlbyname但是它的结构中没有这个输入。 请帮助我
尝试使用IOKit和IOPowerSources函数。 您可以使用IOPSCopyPowerSourcesInfo()来获取blob,然后使用IOPSCopyPowerSourcesList()从中提取CFArray,列出电源。 最后,您可以使用IOPSGetPowerSourceDescription()来获取字典。
如果可以使用命令行,则可以使用pmset命令
像这样:
$ pmset -g
你也可以在命令行上使用ioreg。 例如:
ioreg -l -w0 |grep CurrentCapacity
为您提供当前电池状态,可与最大容量进行比较:
ioreg -l -w0 |grep MaxCapacity
获取有关电池状态的更多信息的另一种方法是使用NSTask以SPPowerDataType作为参数执行system_profiler命令。 在我的Mac上,它给了我以下结果:
电池信息:
Model Information:
Serial Number: W01396THJD3LA
Manufacturer: SMP
Device Name: bq20z451
Pack Lot Code: 0
PCB Lot Code: 0
Firmware Version: 201
Hardware Revision: 000a
Cell Revision: 165
Charge Information:
Charge Remaining (mAh): 5013
Fully Charged: Yes
Charging: No
Full Charge Capacity (mAh): 5086
Health Information:
Cycle Count: 72
Condition: Normal
Battery Installed: Yes
Amperage (mA): -300
Voltage (mV): 12303
要检索具体的内容,可以解析相应的行,也可以使用以下命令生成plist:
$ system_profiler SPPowerDataType -xml> BatteryInfo.plist
这样可以更轻松地根据特定键检索值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.