如何以编程方式关闭自动亮度?

时间:2013-02-08 22:58:21

标签: ios objective-c settings brightness screen-brightness

我想知道是否有一种方法来切换"自动亮度"选择到iOS设备上的OFF位置,如果是,那是什么?

谢谢!

5 个答案:

答案 0 :(得分:6)

我无法与任何权威人士交谈(不能证明是负面的等等),但这似乎并不像苹果会给予第三方应用程序修改的能力。当然,Settings.app修改它,但这并不意味着有公共API来做它。由于这篇文章中没有jailbreak标记,我将继续并假设提问者询问公共API。我会选择“你做不到。”

答案 1 :(得分:6)

当您在应用程序内部时,可以调整亮度,并且它在UIScreen类中可用 -

这是文档 - http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html#//apple_ref/occ/instp/UIScreen/brightness

但Apple的官方公共API不允许iOS应用访问“设置”应用中的常规设置。因此,您将无法更改设置应用内的切换按钮。

答案 2 :(得分:0)

[[UIScreen mainScreen] setBrightness:1.0];

是要走的路。是的,你可以以编程方式进行。只需传递介于0.0到1.0之间的值即可。它根据苹果有效,你不会遇到任何问题。

https://discussions.apple.com/thread/2009141?tstart=0

答案 3 :(得分:0)

但是如果您确实需要,可以定期检查亮度,并在应用程序运行时将其调整到所需的水平。

答案 4 :(得分:0)

根据Hope的回答,针对那些希望在屏幕自动更改亮度时收到通知的人:

func trackBrightness() {   
    // Track brightness changes
    NotificationCenter.default.addObserver(self, selector: #selector(brightnessDidChange), name: UIScreen.brightnessDidChangeNotification, object: nil)
}
    
@objc func brightnessDidChange() {
    let newBrightness = UIScreen.main.brightness
    // Do something
}