任何人都可以在背景/退出上使用[[UIScreen mainScreen] setBrightness]


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

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

最新更新