我想要做的是记录电池电量的日志。我知道在Linux中相应的命令是sysctl(hw.acpi.battery.life)。然而,当我查看Mac OS X中sysctl的手册时,我没有找到相应的代码来找到它。有人可以指出如何使用Objective-C解决这个问题吗?我可以调用sysctlbyname,但是其结构体中没有这个输入参数。请帮帮我。
我想要做的是记录电池电量的日志。我知道在Linux中相应的命令是sysctl(hw.acpi.battery.life)。然而,当我查看Mac OS X中sysctl的手册时,我没有找到相应的代码来找到它。有人可以指出如何使用Objective-C解决这个问题吗?我可以调用sysctlbyname,但是其结构体中没有这个输入参数。请帮帮我。
可以尝试使用IOKit和IOPowerSources函数。您可以使用IOPSCopyPowerSourcesInfo()获取数据块,然后使用IOPSCopyPowerSourcesList()从中提取出CFArray,列出电源来源。最后,您可以使用IOPSGetPowerSourceDescription()来获取字典。
如果您可以使用命令行,则可以使用pmset命令
像这样:
$ pmset -g
pmset -g batt
显示电池的百分比和状态。 - DebugXYZ您也可以在命令行上使用 ioreg。例如:
ioreg -l -w0 |grep CurrentCapacity
此命令可查看当前电池状态,并将其与最大容量进行比较:
ioreg -l -w0 |grep MaxCapacity
获取电池状态的另一种方法是使用NSTask执行system_profiler命令,并将SPPowerDataType作为参数。在我的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