2010-12-29 16 views
1

私は現在、バックアップアプリケーションを開発中です。最近追加される機能のリクエストが多く寄せられています。そのうちのトップには、「バッテリバックアップ時のバックアップ」チェックボックスが追加されていますTime Machineのような「パワー」があります。Cocoa get Power Adapter Status

電源アダプタ(プラグが差し込まれ、差し込まれている)のステータスを取得する方法はありますか?私はデスクトップMacを持っていれば、iMacのように、私はおそらくちょうどプラグインをすべて取得するだろうと仮定します。したがって、私はコンピュータがポータブルであるかどうかを検出する手段が必要です。

私はIOKitが見るライブラリであると想定していますが、ドキュメント内にはそのフレームワーク上にほとんど存在しないものは何も見つかりませんでした。その後、それは古いCarbon Frameworkであるため、その電源状態が変わったときに呼び出されるコールバックを登録する方法はありますか?そうすれば、私はこのチェックボックスの機能を適切に実装できます。

この件については、ご理解いただきありがとうございます。

+1

自分でIOKitを使用していないが、このヘッダーは役に立つかもしれません:http://www.opensource.apple.com/source/PowerManagement/PowerManagement-211/AppleSmartBatteryManager/AppleSmartBattery.h – cobbal

+0

私はそのファイルを見ましたが、それは見た目のように思えましたが、APIにいくつかの問題があるように見えるので、別のアプローチをとらなければなりませんでした。しかし、ありがとう! –

答えて

1

IOPowerSources.hには、必要な機能があります。 IOPSNotificationCreateRunLoopSource()で起動して実行ループソースを作成し、コールバックでIOPSCopyPowerSourcesInfo()で始まり、作業中の電源情報を調べてください。より良い例があるかもしれませんが、this fileはそれがどのように行われたかの妥当なデモンストレーションです。あなたを始めさせるのに十分です。

+0

おかげさまで、私はそれらのメソッドを見つけるためにそれを呼び出すことを好むので、私は少しの 'APIダンプスターダイビング'をしなければなりませんでしたが、私はそれを行う方法を把握できましたが、関連する情報をすべてCFDictionaryRefに入れ、それをNSDictionaryに変換します。私はこれまでの方法と同様にアクセスします。また、バッテリーを搭載したMacの場合にのみ、このチェックボックスを有効にして、IOPSNotificationが実際に実行ループを迷惑にしているかどうかをチェックする必要があります。 –

関連する問題