Is there a way of adjusting the screen brightness programmatically?

Edit: iOS 5 now includes a screen brightness API.

[[UIScreen mainScreen] setBrightness:0.5];

Previous answer:

No, this capability is not exposed via public APIS.

Edit: Note that a future possible iOS release may or may not have screen brightness on the multitasking bar on one particular iDevice.


It is possible, but your app will most likely get rejected from the App Store, because it uses a private API. A flashlight-app was rejected because it adjusted the screen brightness, so I wouldn't recommend it.

In iOS 4.2, the iPad will have a screen brightness-adjuster in the multitasking-bar,

(as mentioned by @coob) so you could tell your users to set the brightness there.


What you could do, is to create a black overlay-view, and set it's alpha to more or less, according to how bright you want the screen to be. This won't actually make the screen less/more bright, but it will give the user an illusion of that.


Here's a Swift answer to this question.

import UIKit
extension UIScreen
{
    static func setMainBrightness(brightness: CGFloat)
    {
        guard (0...1).contains(brightness) else
        {
            print("Attempt to set the screen brightness to an invalid value: \(brightness) should be between 0 and 1 inclusive.")
            return
        }
        self.main.brightness = brightness
    }
}

Call it by using:

UIScreen.setMainBrightness(0.5)

Or ignore my extension (which I just wrote to illustrate the limits) and just call:

UIScreen.main.brightness = 0.5