我的可可应用程序需要禁用显示器的“自动调整亮度”设置。这是可以在 System Preferences -> Displays 中找到的复选框
虽然我找到了一些关于如何获取/设置亮度级别的好资源,但我还没有找到任何东西来帮助我禁用自动设置。
到目前为止,这是我尝试过的,但这不起作用,也许我的代码有问题?
这是在斯威夫特。
// 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)
当然,我的输出是“嘘”,因为这失败了。有人可以指出我做错了什么吗?
我也尝试使用以下内容,但我不确定 kIODisplayAmbientLightSensorKey 属性采用什么值。
var offState: Float = 0.0
IODisplaySetFloatParameter(service, 0, kIODisplayAmbientLightSensorKey, offState)
此外,我遇到过kIODisplayOptionDimDisable
,kIODisplayOptionBacklight
但我相信我需要做的是禁用 AmbientLightSensor?