我怎么知道另一个 Mac 应用是否延迟了闲置睡眠?
How can I know if another Mac app has delayed idle sleep?
我有一个非沙盒 OS X 应用程序,它需要知道是否有任何其他应用程序正在延迟空闲睡眠(通过使用 IOPMAssertionCreateWithName()
and/or IOCancelPowerChange
) .
我不需要知道为什么,我只需要知道他们出于某种原因延迟它,这意味着我的应用程序应该在尝试锁定屏幕之前等待,因为用户当前正在使用系统(例如观看视频)。
有没有办法知道空闲睡眠被暂时延迟了?
看来您可以使用 IOPMCopyAssertionsStatus()
。这将输出一个字典,指示各种断言的系统范围断言级别。查找 kIOPMAssertionTypePreventUserIdleDisplaySleep
的值(或 kIOPMAssertionTypePreventUserIdleSystemSleep
,如果这是您真正想要的)。如果它存在并且大于 0,则说明有什么东西阻止了闲置 display/system 睡眠。
我有一个非沙盒 OS X 应用程序,它需要知道是否有任何其他应用程序正在延迟空闲睡眠(通过使用 IOPMAssertionCreateWithName()
and/or IOCancelPowerChange
) .
我不需要知道为什么,我只需要知道他们出于某种原因延迟它,这意味着我的应用程序应该在尝试锁定屏幕之前等待,因为用户当前正在使用系统(例如观看视频)。
有没有办法知道空闲睡眠被暂时延迟了?
看来您可以使用 IOPMCopyAssertionsStatus()
。这将输出一个字典,指示各种断言的系统范围断言级别。查找 kIOPMAssertionTypePreventUserIdleDisplaySleep
的值(或 kIOPMAssertionTypePreventUserIdleSystemSleep
,如果这是您真正想要的)。如果它存在并且大于 0,则说明有什么东西阻止了闲置 display/system 睡眠。