从文档中可以看出,这些天“唤醒”显示器的方法是:
IOPMAssertionID assertionID2;
IOPMAssertionDeclareUserActivity(CFSTR("Your reasoning"),
kIOPMUserActiveLocal, &assertionID2);
如果它已经打开,那么问题的IOPMAssertionCreateWithName(...)
原始方式只是“防止显示器进入睡眠状态” (尽管它确实有效并且也可以用来防止它在一段时间内进入睡眠状态)。
用于“保持”显示的 docs 方法的工作方式与IOPMAssertionCreateWithName
IOPMAssertionID m_disableDisplaySleepAssertion;
IOReturn success2 = IOPMAssertionCreateWithDescription(
kIOPMAssertionTypePreventUserIdleDisplaySleep, reasonForActivity, NULL, NULL, NULL, 0, NULL, &m_disableDisplaySleepAssertion);
if (success2 == kIOReturnSuccess) {
// screen will stay on, do you work
success = IOPMAssertionRelease(m_disableDisplaySleepAssertion);
}
如果你想“打开它并永远保持它”,然后IOPMAssertionDeclareUserActivity
按照上面的方法,或者只是IOPMAssertionDeclareUserActivity
以某种方式一遍又一遍地调用。
您还可以调用caffeinate
我想的内置命令行实用程序:)