9

私がやりたかったのは、バッテリーのパーセンテージをログオンすることです。Linuxで同等のものはsysctl(hw.acpi.battery.life)であることを私は知っています。しかし、mac os xでsysctlの人を調べたところ、それを見つけるための同等のコードが見つかりませんでした。誰かがObjectivecを使用してこれを行う方法を指摘できますか?sysctlbynameを呼び出すことはできますが、構造体の入力としてこれがありません。親切に助けてください

4

3 に答える 3

19

IOKitIOPowerSources関数を使用してみてください。IOPSCopyPowerSourcesInfo()を使用してブロブを取得し、IOPSCopyPowerSourcesList () を使用してそこから CFArray を抽出し、電源を一覧表示できます。最後に、IOPSGetPowerSourceDescription()を使用して辞書を取得できます。

コマンド ラインを使用できる場合は、pmsetコマンドを使用できます。

そのようです:

$ pmset -g
于 2009-09-16T13:09:44.990 に答える
3

コマンドラインで ioreg を使用することもできます。例えば:

ioreg -l -w0 |grep CurrentCapacity 

現在のバッテリーの状態が表示され、最大容量と比較できます。

ioreg -l -w0 |grep MaxCapacity
于 2011-12-16T19:01:38.850 に答える
1

バッテリ ステータスに関する詳細情報を取得するもう 1 つの方法は、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

これにより、特定のキーに基づいて値を取得しやすくなります。

于 2012-12-11T19:25:45.600 に答える