我有一个非沙盒的OS X应用程序需要知道是否有任何其他应用程序延迟空闲睡眠(通过使用IOPMAssertionCreateWithName()
和/或IOCancelPowerChange
)。
我不需要知道原因,我只是需要知道他们因某种原因推迟了它,这意味着我的应用程序应该在尝试锁定屏幕之前等待,因为用户当前正在使用系统(至观看视频,例如)。
有没有办法知道空闲睡眠暂时被推迟了?
答案 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,则某些东西阻止空闲显示/系统睡眠。