[英]How to turn iOS device display completely off?
我们目前正在开发一个iOS应用程序,需要在停用设备锁定的情况下以“单应用程序模式”运行。 我们想要的是屏幕完全变暗,并且一旦发生套接字/ mqtt事件或触摸事件,显示屏就会变亮。
到目前为止,一切正常,唯一不完美的是使用以下命令无法完全关闭显示器:
UIScreen.main.brightness = CGFloat(0.0)
有没有办法实现这一目标?
不幸的是,目前没有办法。
没有越狱,没有任何实际方法可以打开屏幕。 甚至像现在一样关闭屏幕,也很可能会拒绝您的应用程序。
原因是,即使像素为黑色,LED显示屏中的屏幕背光仍然亮着。
PS:新款iPhone 8据说带有OLED显示屏(如果事实如此)。 与当前屏幕不同,OLED屏幕在黑色时会关闭像素的光(OLED与LED不同,OLED每个像素都有独立的光,这就是为什么它会熄灭)。 因此,您的代码将在iphone 8上完美运行。这是硬件更改,而不是软件更改,因此您无法在代码中进行调整。
希望这可以帮助!
如果要实现“锁定”屏幕效果,我建议添加UIView
作为UIViewController
子视图,该视图将占据整个屏幕。 该UIView
应该具有黑色背景和最小亮度设置。 当您从套接字获取事件时,只需设置亮度为所需的常数即可动画化UIView
消失。
获得事件的示例:
overlayView.frame = CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: SCREEN_HEIGHT)
vc.addSubview(overlayView)
UIView.animate(withDuration: 0.25, delay: 0.0, options: [], animations: {
self.overlayView?.removeFromSuperview
}, completion: { (finished: Bool) in
UIScreen.main.brightness = CGFloat(0.8)
})
我在写此答案时没有编译器的帮助,因此如果出现语法错误,请不要介意。 这只是草稿。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.