2017-01-23 145 views
2

我正在研究將無限期在設備上運行的Swift 3應用程序。這對設備造成了很大的壓力,我想關閉顯示屏,直到我觸發事件重新開啓。以編程方式關閉iOS屏幕

我可以設置isProximityMonitoringEnabled以保持設備屏幕關閉,應用程序在傳感器覆蓋的背景下運行。但是,當我將它設置爲false(即使我以編程方式繼續到另一個視圖時,它甚至不會打開),直到我脫下封面爲止,屏幕不會打開。

UIDevice.current.isProximityMonitoringEnabled = true; 

截至目前,我將屏幕亮度降至0.0,當它處於空閒狀態時。

UIScreen.main.brightness = CGFloat(0.0) 

我不介意在這裏https://stackoverflow.com/a/12944387/1509698使用私有API的類的回答說。但對我的生活我無法轉換到斯威夫特或者找到一個代碼片段iOS上的10

+0

最簡單的方法可能是寫一個目標在你提供的參考文獻中用於私人api的-c包裝,並從swift中調用它。 – ptoinson

+0

雖然這個答案很舊,並且可能不適用於當前版本的iOS。私有API的一個缺點。其他想法:http://stackoverflow.com/questions/1679814/iphone-phone-goes-to-sleep-even-if-idletimerdisabled-is-yes/29256860#29256860 – ptoinson

回答

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

這不是設置亮度?我需要徹底關閉屏幕,然後在稍後將其喚醒。 – mimmi