4

为什么我不能在 applicationDidEnterBackground 或 applicationWillResignActive 中设置屏幕亮度?

这是我的代码:

-(void)applicationDidEnterBackground:(UIApplication *)application { 
    [[UIScreen mainScreen] setBrightness:1.0];
}

看不懂……!?它适用于applicationDidEnterForeground等,只是在我使用主页按钮关闭应用程序时不起作用。

这个问题还有其他解决方案吗?

4

2 回答 2

12

2016 年 8 月更新:

无论应用程序是否关闭,应用程序所做的亮度更改都会一直有效,直到设备被锁定。系统亮度(用户可以在“设置”或“控制中心”中设置)在下次打开显示器时恢复。

https://developer.apple.com/reference/uikit/uiscreen/1617830-brightness

2012 年 7 月的原始帖子:

您不能在退出前设置亮度。这在任何地方都没有记录,但开发论坛上的以下帖子很有帮助:

https://devforums.apple.com/thread/139813?start=0&tstart=0

应该发生的是当应用程序在后台时恢复系统范围的亮度。有一个已知错误,直到下次关闭和打开背光时才会真正发生这种情况。

您可以通过将亮度设置为 0 并按 Home 键轻松重现这一点。主屏幕仍然会很暗。锁定然后解锁您的设备并恢复系统亮度。

请提交一个关于此的错误!在同一篇文章中,一位苹果员工发布了重复的错误报告是有帮助的。

于 2012-07-27T11:08:27.727 回答
0

我从未尝试在 applicationDidEnterBackground 设置屏幕亮度。

我认为您可以通过在所有内容之上使用带有黑色背景颜色的 UIView 来更改应用程序的亮度。然后设置这个 UIView 的 alpha。然后结果看起来就像真正的屏幕亮度。

我使用这种替代方法是因为这种方法仅适用于 iOS5。

[[UIScreen mainScreen] setBrightness:1.0];

我也想支持iOS3,4。

于 2012-04-27T10:00:48.893 回答