为什么我无法在applicationDidEnterBackground或applicationWillResignActive中设置屏幕亮度?
这是我的代码:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[UIScreen mainScreen] setBrightness:1.0];
}
无法理解......!?它适用于applicationDidEnterForeground等,只是当我使用主页按钮关闭应用程序时。
感谢任何可以提供帮助的人......
答案 0 :(得分:1)
这可能是因为您的应用程序放弃了对操作系统的控制,然后操作系统将根据用户的全局设置控制亮度。如果要全局更改亮度设置,则必须访问用户的全局iphone设置并进行更改,我不确定是否可行。
当您在applicationDidEnterForeground上设置亮度时:您的应用再次处于控制状态,并可以调整亮度等内容。一旦您的应用程序失去了控制思想,操作系统就会接管并使设备恢复到符合用户的全局设置。
希望有所帮助。
答案 1 :(得分:1)
如果你想改变亮度,你应该这样做:
func applicationWillResignActive(_ application: UIApplication) {
DispatchQueue.main.async {
UIScreen.main.brightness = 0.5
}
}
}
答案 2 :(得分:0)
我很确定这是当前版本的一个错误(setBrightness调用在applicationDidEnterBackground或applicationWillResignActive中没有任何影响)。
我目前所做的与您所做的相似 - 我在应用程序处于活动状态时将亮度设置为1.0,然后在需要时通过修改所有其他图形顶部的黑色图层的不透明度来降低亮度。这样,如果用户暂停应用程序,那么他们的屏幕至少是明亮的(而不是应用程序所处的任意亮度)。
当用户锁定屏幕时,它将恢复到iPhone设置的亮度。