我怎么知道另一台Mac应用程序是否延迟了闲置睡眠?

时间:2015-07-31 09:46:59

标签: objective-c macos iokit

我有一个非沙盒的OS X应用程序需要知道是否有任何其他应用程序延迟空闲睡眠(通过使用IOPMAssertionCreateWithName()和/或IOCancelPowerChange)。

我不需要知道原因,我只是需要知道他们因某种原因推迟了它,这意味着我的应用程序应该在尝试锁定屏幕之前等待,因为用户当前正在使用系统(至观看视频,例如)。

有没有办法知道空闲睡眠暂时被推迟了?

1 个答案:

答案 0 :(得分:1)

看起来您可以使用if ENV['COVERAGE'] require 'simplecov' # some SimpleCov setup, e.g. formatters SimpleCov.start 'rails' end ENV['RAILS_ENV'] ||= 'test' require 'spec_helper' require File.expand_path('../../config/environment', __FILE__) require 'rspec/rails' Rails.application.eager_load! if ENV['COVERAGE'] 。这将输出一个字典,指示各种断言的系统范围的断言级别。查找IOPMCopyAssertionsStatus()(或kIOPMAssertionTypePreventUserIdleDisplaySleep的值,如果这是您真正想要的)。如果它存在且大于0,则某些东西阻止空闲显示/系统睡眠。