以编程方式更改屏幕亮度

时间:2016-05-26 14:23:56

标签: ios background screen brightness

我正试图在我的应用程序中节省手机的电池寿命。我的应用程序使用AsyncPort连接,当应用程序进入后台时,端口关闭。

我已经尝试在我的Info.plist中更改“所需背景模式”的设置,并进行了我认为有助于'应用播放音频或使用AirPlay传输音频/视频'的设置,但我实际上并没有使用AirPlay。我正在使用端口来传输数据,因此当应用程序进入后台时,端口会关闭。

所以我想我会用[[UIScreen mainScreen] setBrightness: yourvalue];来节省电量。哦,是的,它有效。但是一旦应用程序终止,即使尽最大努力将应用程序委托applicationWillTerminate中的亮度重置为alpha 1.0,屏幕也会保持黑暗,屏幕仍然保持黑暗。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

iOS允许应用程序在退出主内存之前一点时间。因此,您可以在设置亮度后尝试#sleep几分之一秒。

答案 1 :(得分:0)

我有一个肮脏的方法但是我不知道它是否有效,所以为什么不尝试一下呢! 我知道这不是一个干净的方法,但我现在说,所以你不要投票。 在应用程序中将进入后台,触发2:59秒的NStimer(应用程序在3分钟不活动后终止)。

NStimer的作用是将亮度设置为1.0。

在WillEnterForground中,使计时器无效,使其变得无用。

这种方式只有在后台才能触发此计时器。在应用程序终止之前1秒恢复亮度,如果用户打开应用程序,则计时器无效!

我希望它有效!

快乐的编码!