在iOS中关闭自动亮度

时间:2019-06-07 11:52:27

标签: objective-c iphone-privateapi brightness uiscreen

“自动亮度”将覆盖我为应用程序设置的屏幕亮度值。我通过

设置亮度
[[UIScreen mainScreen] setBrightness:0.1];

我想以编程方式关闭自动亮度

我正在开发企业应用程序,因此使用私有api没有任何问题

我尝试使用UIScreenBrightnessDidChangeNotification,但它没有更新我的价值

- (void)viewDidLoad {
    [super viewDidLoad];

    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    [center addObserverForName:UIScreenBrightnessDidChangeNotification
                        object:nil
                         queue:nil
                    usingBlock:^(NSNotification *notification)
     {
         NSLog(@"Brightness changed: %f", [[UIScreen mainScreen] brightness]);
         dispatch_async(dispatch_get_main_queue(), ^{
             [[UIScreen mainScreen] setBrightness:0.1];
         });
     }];
}

1 个答案:

答案 0 :(得分:0)

收听brightnessDidChangeNotification,然后将亮度设置回处理程序中所需的位置。

当然,您还需要添加代码,以在应用程序进入后台(并可能丢失通知)后检查亮度。