任何人都可以在后台/退出时使用[[UIScreen mainScreen] setBrightness]?

时间:2012-06-12 13:09:36

标签: iphone objective-c ios ipad

iOS中似乎存在先前记录(并报告)的错误(它仍然存在于'最新的iOS'中),这意味着虽然您可以使用[[UIScreen mainScreen] setBrightness:x]应用程序已启动,您无法在后台事件期间随时调用它(这意味着您无法将亮度恢复到应用程序启动之前的水平)。

// Works as expected, screen dims
- (void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"applicationDidBecomeActive");

    // Dim the screen (works)
    [[UIScreen mainScreen] setBrightness:0.2];
}

但是...

// Seems to fire if you double-tap the home key ('task manager' ;)
// Doesn't work
- (void)applicationWillResignActive:(UIApplication *)application
{
    NSLog(@"applicationWillResignActive");

    [[UIScreen mainScreen] setBrightness:1.0];
}

背景是我将成功的Dock Clock应用程序从Android移植到iOS,现在发现我无法恢复屏幕亮度。这显然是一个错误,但我想知道是否有人发现了解决方法?

这是一个非常简单的原型测试应用程序,它证明了这个错误:

https://github.com/philask/Dockclock-iOS

1 个答案:

答案 0 :(得分:1)

当我的应用程序进入后台时,我没有尝试恢复它...但我注意到当你锁定和解锁设备时它将被恢复。