2

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

4

2 回答 2

0

你在内核还是用户区?
在内核空间中,您的 Kext 可以像这样注册 PowerManagement 事件:

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

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

于 2012-03-05T14:59:33.350 回答
0

是的,您可以通过观察kIOPMMessageClamshellStateChange回调来处理状态变化。有关大部分完整的 Objective-C 代码示例,请参阅 ControlPlane 的 LaptopLidEvidenceSource 文件。

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

于 2019-11-15T17:20:09.587 回答