Is there a way of adjusting the screen brightness programmatically?
I have an iPhone app for 开发者_运维百科photographic purposes (kind of a lightbox). This app needs as much brightness as possible. Is there a way to change the screen brightness programmatically, and then restore it back some time later?
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
精彩评论