Как проспать от сна программно, если крышка закрыта?
Я хочу, чтобы система от сна программировалась, есть ли способ сделать это?
Я прочитал следующую ссылку:
http://developer.apple.com/mac/library/qa/qa2004/qa1340.html
Это только разговоры о получении уведомления, но не уверен, есть ли способ пробудить систему от сна?
Я ценю какой-то поток информации...
Update:
В соответствии с предложением, которое я попробовал с помощью IOPMSchedulePowerEvent
Код, который я использовал:
NSCalendarDate *timeIntervalSinceNow = [NSCalendarDate dateWithTimeIntervalSinceNow:40];
IOReturn result = IOPMSchedulePowerEvent ((CFDateRef)timeIntervalSinceNow, NULL, CFSTR(kIOPMAutoWake));
Результат:
Он не работает в MacBook, если закрыта крышка
Я делаю что-то неправильно или любое решение?
Ответы
Ответ 1
Вы можете планировать события пробуждения с помощью IOPMSchedulePowerEvent через диспетчер питания. Возможно, вы сможете запланировать немедленное пробуждение. pmset - это оболочка командной строки для диспетчера мощности. Вы также можете предотвратить сбой с помощью IOCancelPowerChange в определенных случаях.
Возможно, вы сможете предотвратить сон или проснуться, создав событие мыши или клавиши. Одним из способов генерации событий является CGPostKeyboardEvent.
Edit:
Нормальный сон отличается от закрытого сна раскладушки. Чтобы повлиять на последнее, вы должны написать расширение ядра, например Insomnia.