笔记本电脑盖关闭时的通知

时间:2012-02-15 00:52:06

标签: cocoa sleep iokit nsworkspace

由于盖子关闭,机器进入睡眠状态时是否发布了通知?我知道NSWorkspace的睡眠通知,但无论机器如何进入睡眠状态(即使在闲置睡眠状态下)都会发布这些通知。

2 个答案:

答案 0 :(得分:0)

你在内核还是Userland?
在内核空间中,您的Kext可以注册PowerManagement事件,如下所示:

PMinit();
provider->joinPMtree(this);
registerPowerDriver (this, gPowerStates, kPowerNumStates);

然后你的KEXT可以响应setPowerState()和powerStateDidChangeTo()

答案 1 :(得分:0)

是的,您可以通过观察kIOPMMessageClamshellStateChange回调来处理状态更改。有关大多数完整的Objective-C代码示例,请参见ControlPlane的LaptopLidEvidenceSource文件。通过为我的项目改编ControlPlane的代码,我能够使它完美地工作。

https://github.com/dustinrue/ControlPlane/blob/master/Source/LaptopLidEvidenceSource.h https://github.com/dustinrue/ControlPlane/blob/master/Source/LaptopLidEvidenceSource.m