I was wondering if there is a method to toggle the "Auto-Brightness" option to the OFF position on iOS devices and if so, what is it?

有帮助吗?

解决方案

Brightness can be adjusted when you are inside the app and it is available inside the UIScreen class -

Here's the documentation - http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html#//apple_ref/occ/instp/UIScreen/brightness

But Apple's official public APIs do not allow an iOS app to access General settings in the Settings app. So you will not be able to change the toggle button inside the settings app.

其他提示

I can't speak with any authority (can't prove a negative, etc.), but this doesn't seem like a setting that Apple would give 3rd party apps the ability to modify. Sure, Settings.app modifies it, but that doesn't mean there's public API to do it. Since there's no jailbreak tag on this post, I'm gonna go ahead and assume that the asker is asking about public API. I'm gonna go with "you can't."

But you can check brightness periodically and take it to the level you wish when your application is running if you really want it.

Objective-C

[[UIScreen mainScreen] setBrightness:1.0];

is the way to go. Yes you can do it programatically. Just pass the value between 0.0 to 1.0 and you can do it. It is valid according to apple and you won't face any problem.

Swift 3+

UIScreen.main.brightness = CGFloat(1.0)

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

Based on Hope's answer, for those that would like to be notified if the screen automatically changes brightness:

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
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top