-->

如何获得Mac OS X的MacBook笔记本的电池续航时间编程?(How to get the b

2019-08-06 20:16发布

我想要做的是采取电池百分比日志。 我知道在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?