以编程方式关闭iOS屏幕

时间:2017-01-23 08:25:39

标签: ios objective-c iphone swift

我正在开发一个将无限期地在设备上运行的Swift 3应用程序。这对设备来说非常紧张,我想关掉显示屏,直到我触发事件再打开它。

我可以设置isProximityMonitoringEnabled来关闭设备屏幕,并在覆盖传感器的情况下在后台运行应用程序。但是,当我将其设置为false时,屏幕不会重新打开(如果我以编程方式切换到另一个视图,它甚至不会打开),直到我取下封面。

UIDevice.current.isProximityMonitoringEnabled = true;

截至目前,我在闲置时将屏幕亮度降低到0.0。

UIScreen.main.brightness = CGFloat(0.0)

我不介意使用私有API,就像这里的答案https://stackoverflow.com/a/12944387/1509698所说的那样。但是对于我的生活,我无法将其转换为Swift或找到在iOS 10上运行的代码片段。

1 个答案:

答案 0 :(得分:0)

尝试此扩展程序,它适用于我

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