我正在开发一个Swift 3应用程序,它将无限期地在设备上运行。这对设备压力很大,我想关闭显示器,直到触发事件将其重新打开。

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

UIDevice.current.isProximityMonitoringEnabled = true;

截至目前,我将空闲时的屏幕亮度降低到0.0。
UIScreen.main.brightness = CGFloat(0.0)

我不介意像https://stackoverflow.com/a/12944387/1509698所说的那样使用 private API。但是对于我一生来说,我无法将其转换为Swift,也找不到在iOS 10上运行的代码段。

最佳答案

试试这个扩展,对我有用

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

10-06 06:35