Cocoa使用kIODisplayAmbientLightSensorKey禁用“自动调整亮度”

时间:2016-04-13 00:45:09

标签: swift cocoa io osx-yosemite ambient

我的可可应用程序需要禁用“自动调整亮度”的显示设置。这是可以在系统偏好设置 - >中找到的复选框。显示器

虽然我找到了一些关于如何获取/设置亮度级别的优秀资源,但我还没有找到任何可以帮助我禁用自动设置的内容。

到目前为止,这是我尝试过的,这不起作用,也许我的代码有问题?

这是在Swift。

    // get the light sensor service
    let lightSensor: io_service_t = IOServiceGetMatchingService(kIOMasterPortDefault,
                                                                IOServiceMatching("AppleLMUController"))

    // connect to the service
    var port: io_connect_t = 0
    IOServiceOpen(lightSensor, mach_task_self_, 0, &port)

    // set the property to false to turn off light sensor
    let offState: Bool = false
    let result: kern_return_t = IOConnectSetCFProperty(lightSensor, 
                                                       kIODisplayAmbientLightSensorKey, 
                                                       offState)

    // print the result
    if result == kIOReturnSuccess { print("yay") }
    else { print("boo") }

    // disconnect from service
    IOConnectRelease(lightSensor)

当然我的输出是'boo',因为这是失败的。有人可以指出我做错了吗?

我也尝试使用以下内容,但我不确定kIODisplayAmbientLightSensorKey属性的值是什么。

var offState: Float = 0.0
IODisplaySetFloatParameter(service, 0, kIODisplayAmbientLightSensorKey, offState)

此外,我遇到kIODisplayOptionDimDisablekIODisplayOptionBacklight,但我相信我需要做的是禁用AmbientLightSensor?

0 个答案:

没有答案