繁体   English   中英

如何完全关闭iOS设备的显示?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM