如何通过编程获取Mac OS X MacBook的电池寿命?

10

我想要做的是记录电池电量的日志。我知道在Linux中相应的命令是sysctl(hw.acpi.battery.life)。然而,当我查看Mac OS X中sysctl的手册时,我没有找到相应的代码来找到它。有人可以指出如何使用Objective-C解决这个问题吗?我可以调用sysctlbyname,但是其结构体中没有这个输入参数。请帮帮我。


也许尝试添加一个“objective-c”标签。不幸的是,我还没有足够的声望来进行编辑。 - Dominic Bou-Samra
可能是OSX中的电池状态?的重复问题。 - Koen.
3个回答

21

7
更具体地说,pmset -g batt 显示电池的百分比和状态。 - DebugXYZ
1
@Dominic,你发帖中的大部分链接都失效了。 - Alexej Magura

4

您也可以在命令行上使用 ioreg。例如:

ioreg -l -w0 |grep CurrentCapacity 

此命令可查看当前电池状态,并将其与最大容量进行比较:

ioreg -l -w0 |grep MaxCapacity

1

获取电池状态的另一种方法是使用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

要检索您需要的内容,您可以解析适当的行,或使用以下命令生成一个plist文件: $ system_profiler SPPowerDataType -xml > BatteryInfo.plist
这将更容易地根据特定的键检索值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接