有没有办法以编程方式调整屏幕亮度?

时间:2010-09-23 14:56:36

标签: iphone ios

我有一个用于摄影目的的iPhone应用程序(一种灯箱)。这个应用程序需要尽可能多的亮度。有没有办法以编程方式更改屏幕亮度,然后在一段时间后恢复它?

3 个答案:

答案 0 :(得分:77)

编辑:iOS 5现在包含screen brightness API

[[UIScreen mainScreen] setBrightness:0.5];

上一个回答:

不,此功能不会通过公共APIS公开。

编辑:请注意,未来可能的iOS版本可能会或可能不会在一个特定iDevice上的多任务栏上显示屏幕亮度。

答案 1 :(得分:5)

这是可能的,但您的应用很可能会被App Store拒绝,因为它使用私有API。 手电筒应用被拒绝,因为它调整了屏幕亮度,所以我不推荐它。

  

在iOS 4.2中,iPad将拥有   屏幕亮度调节器   多任务条,

(正如@coob所提到的)所以你可以告诉你的用户在那里设置亮度。


你可以做的是创建一个黑色叠加视图,并根据你想要的屏幕亮度来设置它的或多或少的alpha。这实际上不会使屏幕变得更亮/更亮,但它会让用户产生错觉。

答案 2 :(得分:5)

这是Swift对这个问题的回答。

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
    }
}

使用以下方法调用它:

UIScreen.setMainBrightness(0.5)

或者忽略我的扩展程序(我刚才写的用来说明限制),然后调用:

UIScreen.main.brightness = 0.5