Is there a way of adjusting the screen brightness programmatically?

后端 未结 3 1715
没有蜡笔的小新
没有蜡笔的小新 2020-11-28 10:28

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 programmat

相关标签:
3条回答
  • 2020-11-28 10:48

    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
    
    0 讨论(0)
  • 2020-11-28 10:56

    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.

    0 讨论(0)
  • 2020-11-28 11:04

    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.

    0 讨论(0)
提交回复
热议问题