最近のディスプレイを「目覚めさせる」方法は次のとおりです。
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
ます:)