在iBook中,用户可以通过滑块调整屏幕亮度,对吧?
要实现这个功能,我应该做什么?我应该使用哪个类或函数来控制屏幕亮度?
谢谢
要实现这个功能,我应该做什么?我应该使用哪个类或函数来控制屏幕亮度?
谢谢
[UIScreen mainScreen].brightness = 0.5;
你好,我在网上找到了这个来自 Alec Jacobson 的开源代码。
- (void) set_brightness:(float) new_brightness {
CGDirectDisplayID display[kMaxDisplays];
CGDisplayCount numDisplays;
CGDisplayErr err;
err = CGGetActiveDisplayList(kMaxDisplays, display, &numDisplays);
if (err != CGDisplayNoErr)
printf("cannot get list of displays (error %d)\n",err);
for (CGDisplayCount i = 0; i < numDisplays; ++i) {
CGDirectDisplayID dspy = display[i];
CFDictionaryRef originalMode = CGDisplayCurrentMode(dspy);
if (originalMode == NULL)
continue;
io_service_t service = CGDisplayIOServicePort(dspy);
float brightness;
err= IODisplayGetFloatParameter(service, kNilOptions, kDisplayBrightness,
&brightness);
if (err != kIOReturnSuccess) {
fprintf(stderr,
"failed to get brightness of display 0x%x (error %d)",
(unsigned int)dspy, err);
continue;
}
err = IODisplaySetFloatParameter(service, kNilOptions, kDisplayBrightness,
new_brightness);
if (err != kIOReturnSuccess) {
fprintf(stderr,
"Failed to set brightness of display 0x%x (error %d)",
(unsigned int)dspy, err);
continue;
}
}
}
这是一个私有API,因此,如果您想使您的应用程序在App Store上可用,答案是您无法实现。这在许多层面上都很糟糕。
您可能需要向苹果提交错误报告。