2012-06-19 7 views
1

Mac을 잠자기 상태로 만들 때 NSWorkspaceWillSleepNotification을 성공적으로 수신합니다. 특정 시간 후에 컴퓨터가 잠자기 상태로 전환되면이 알림이 뜨지 않습니다. 에너지 선호.MacOS가 절전 모드로 전환 될 때 알림 받기

해결 방법이 있습니까?

+0

유휴 상태에서 NSWorkspaceWillSleepNotification이 실행되지 않는다고 생각됩니다 ... NSWorkspace의 알림 센터 대신 파일 센터에 기본 알림 센터를 제출하고 있습니까? 그렇지 않으면 I/O Kit 절전/깨우기 알림에 대한 콜백을 설정할 수 있습니다 (http://developer.apple.com/library/mac/#qa/qa1340/_index.html](http://developer. apple.com/library/mac/#qa/qa1340/_index.html)) – lottscarson

+0

NSWorkspace의 알림 센터를 사용하고 있습니다. 그냥 알아두기 : 당신도 똑같은 버그를 경험 하느냐, 아니면 효과가 있습니까? – user732274

+0

방금 ​​테스트를했는데 10.7.4처럼 보입니다. 유휴 상태 알림은 누군가가 IORegisterForSystemPower를 호출하지 않으면 NSWorkspace에서 보내지 않습니다. 반면 10.6.8에서는 아무거나 보내지 않습니다. 이제는 소수의 시스템에서만 테스트 했으므로 하드웨어, 시스템 설정 또는 IORegisterForSystemPower라고하는 다른 응용 프로그램의 존재 여부가 다를 수 있으므로 세부 정보를 너무 많이 신뢰하지 마십시오. 그러나 때로는 알림이 전송되지 않는 것이 적어도 일부 확인됩니다. IORegisterForSystemPower가 문제를 해결하는지 테스트하십시오. – abarnert

답변

2

내 의견에서 언급했듯이 일부 컴퓨터에서는이를 재현했지만 다른 컴퓨터에서는 재현 할 수 없었습니다. 매우 빠른 조사에서 IREegisterForSystemPower를 호출하지 않으면 10.7.4는 유휴 상태의 알림을 보내지 않지만 10.6.8은 그렇지 않습니다. 그래서 10.7의 버그 일 수 있습니다. 그러나 필자의 테스트는 매우 미미했기 때문에 특정 하드웨어 모델의 버그 일 수도 있고, 생각지 못한 이상한 설정과 관련된 버그 일 수도 있습니다.

반면에 이것은 의도적 인 동작 일 수 있습니다.이 경우 문서에 버그가 있다고 생각합니다. 유휴 및 강제 수면 모두에 대해 알림이 전송된다고 직접 말하지는 않지만 분명히 의미합니다.

NSWorkspace 알림 레퍼런스 (developer.apple.com이 다운 된 것 같아서 URL을 얻을 수 없음)은 "시스템이 잠자기 상태가되기 전에 게시 됨"이라고 말합니다 - "때때로"또는 "강제 절전 모드에서만" .

QA1340 (http://developer.apple.com/library/mac/#qa/qa1340/_index.html)은 두 가지 종류의 수면을 모두 다루며 코코아를 사용하여 아무런 힌트없이 알림을 수신 할 수 있다고 말합니다. 그것은 오직 한 종류 만 작동합니다. 그것은 작동해야하는 샘플 코드를 제공하며, 그 코드를 사용하여 문제를 재현합니다.

저는 Apple에 버그 보고서를 제출하고 버그 보고서를 http://openradar.appspot.com으로 복사하고 Apple의 dev 포럼에서 스레드를 여는 것이 좋습니다. 유료 MDP 회원이라면 10.8DP4.1에서 시험해보고 dev 포럼의 NDA 섹션에서 스레드를 시작하십시오. 10.8이 여전히 망가져 있다면 최종 릴리스 전에 레이더가이를 고칠 수도 있습니다. 그러나 아무도이를보고하지 않으면 고쳐질 확률은 적습니다.

관련 문제