iPhone - 更改屏幕亮度,就像iBook一样

3
在iBook中,用户可以通过滑块调整屏幕亮度,对吧?
要实现这个功能,我应该做什么?我应该使用哪个类或函数来控制屏幕亮度?
谢谢
3个回答

5
自 iOS5 开始,您可以使用以下方法调整显示屏亮度:
[UIScreen mainScreen].brightness = 0.5;

1

你好,我在网上找到了这个来自 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;
    }
}       

}

我使用了这段代码,但是它显示了很多错误,请问我需要使用哪些框架来解决这个问题?谢谢。 - Sabby

1

这是一个私有API,因此,如果您想使您的应用程序在App Store上可用,答案是您无法实现。这在许多层面上都很糟糕。

您可能需要向苹果提交错误报告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接