我想要做的是采取电池百分比日志。 我知道在Linux中是等效的sysctl(hw.acpi.battery.life)。 然而,当我通过sysctl的在Mac OS X中的人走到我没有找到的等效代码找到它。 有人能指出如何做到这一点使用Objective C的。 我可以打电话给sysctlbyname但不具有本作中,其结构输入。 请帮助我,请
Answer 1:
尝试使用由于IOKit和IOPowerSources功能。 您可以使用IOPSCopyPowerSourcesInfo()得到一个blob,并将IOPSCopyPowerSourcesList()来,然后提取CFArray出的是,上市电源。 最后,你可以使用IOPSGetPowerSourceDescription()来获取字典。
如果你可以使用命令行,你可以使用pmset命令
像这样:
$ pmset -g
Answer 2:
你可以在命令行中使用名为ioreg为好。 例如:
ioreg -l -w0 |grep CurrentCapacity
给你目前的电池状态,可以进行比较,最大容量:
ioreg -l -w0 |grep MaxCapacity
Answer 3:
得到电池状态的一些详细信息的另一种方法是使用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
这将使它更容易检索值,基于特定按键。
文章来源: How to get the battery life of mac os x macbooks programatically?