我已经看到以前的文章中无法确保您可以将屏幕亮度恢复到用户在您的应用程序中调整它之前的值(即捕获亮度级别屏幕在你的应用程序加载之前,并在应用程序终止或进入后台之前重置为该屏幕亮度)。看起来,这可能是Apple为了避免在应用程序终止时用户不知道的重大改变而做的。但看起来苹果以某种方式将其与Passbook应用程序拉开了关系。请注意,当您启动Passbook应用程序时,屏幕亮度会增加,以便扫描仪可以更好地读取条形码,但是当您按Home按钮并退出Passbook应用程序时,屏幕亮度将恢复到之前的状态。如果苹果能做到这一点,为什么我们不能?任何人都知道Passbook应用如何做到这一点?在iOS中终止应用程序时恢复屏幕亮度
回答
这是一个非常简单的机制,是在iBooks 1.5+的基础上引入的,最后在iOS 5中增加了+[UIScreen brightness]
API后才能使用。因为它接受0.0-1.0的简单浮点数,一个简单的方法,并且可以在任何UIApplication委托方法中简单地进行恢复。事实上,我写了一个示例应用程序(OOH,Shiny),它可以在启动时恢复屏幕亮度,并在退出时保存它。
明智地使用它,没有多少人喜欢他们的应用程序将屏幕亮度推到100%,或在重新启动时将其调暗到不可读的5%。 – CodaFi
我其实是在寻找相反的东西。我想将应用程序关闭时打开应用程序之前的屏幕亮度恢复到原来的水平(例如,如果应用程序的用户决定在应用程序中始终调整屏幕亮度,我希望亮度返回到用户关闭应用程序时进入应用程序之前的内容)。问题是,似乎没有办法可靠地确保应用程序总是在终止之前恢复“保存的”屏幕亮度值。有几个人猜测,苹果可能会阻止开发人员这样做,以避免突然的变化。 – 1wayswim
这不完全是“相反”,就像对示例应用程序的修改一样。删除滑块,在defaults.plist中建立一个您想要的亮度设置值,然后将恢复代码放入其中一种终止方法中。 – CodaFi
static CGFloat s_brightness = 0.5f;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
s_brightness = [[UIScreen mainScreen] brightness];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[[UIScreen mainScreen] setBrightness:s_brightness];
}
似乎只能在iOS 8上恢复... – jjxtra
在斯威夫特
static var defaultBrightNess:CGFloat = 0.5;
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool
{
AppDelegate.defaultBrightNess = UIScreen.main.brightness;
UIScreen.main.brightness = 1.0;
return true
}
func applicationWillEnterForeground(_ application: UIApplication) {
UIScreen.main.brightness = 1.0
}
func applicationWillResignActive(_ application: UIApplication) {
UIScreen.main.brightness = CGFloat(AppDelegate.defaultBrightNess)
}
- 1. 终止前更改屏幕亮度
- 2. 防止在目标屏幕解锁后的亮度恢复c
- 3. 如何在应用程序运行时始终保持Android屏幕亮度
- 4. iOS 7自动亮度控制应用程序屏幕亮度设置
- 5. Bug恢复亮度iOS
- 6. iOS:在应用处于后台时设置屏幕亮度
- 7. ios上的密码保护屏幕在恢复应用程序时被延迟
- 8. 在Mac OS X应用程序中调整屏幕亮度
- 9. 无法恢复应用程序退出时的亮度
- 10. 恢复应用程序时忽略初始屏幕活动 - Android
- 11. 屏幕亮度控制程序
- 12. 的iOS:将某个应用时终止休假屏幕
- 13. 避免在锁定屏幕恢复应用程序
- 14. 当屏幕角度变化时唤醒iOS应用程序?
- 15. WindowManager.addView可以防止其他应用程序设置屏幕亮度
- 16. 改变屏幕亮度的onPause(Android应用程序)
- 17. 调整Windows 8应用程序的屏幕亮度
- 18. 将屏幕亮度控制添加到Android应用程序
- 19. iOS应用在解锁屏幕后不能恢复
- 20. 终止Python程序,但恢复数据
- 21. 在应用程序运行时在iOS中blacken屏幕
- 22. 防止iOS应用程序扩展中的调光屏幕
- 23. 在iOS中锁定屏幕时访问应用程序
- 24. 在iOS中用Swift调整/触摸屏幕亮度
- 25. 如何恢复到正确的应用程序终止(cocos2d的)
- 26. 改变屏幕亮度时,自动亮度调节启用
- 27. VIM屏幕恢复
- 28. 恢复主屏幕
- 29. 应用程序在ios中删除图像时终止
- 30. 无法应用系统屏幕亮度编程中的Android
苹果能做到这一点,因为这是他们的平台。 – JustSid
成为国王真好! – 1wayswim