//
系统APP自动开启了近距离检测(如:打电话,离脸近屏幕就黑了,离的远屏幕主亮了)
//
但开发者APP需要手动开启
UIDevice.current.isProximityMonitoringEnabled =
true
//
使用通知监听距离变化
NotificationCenter.
default
.addObserver(self, selector: #selector(proximityStateChanged), name: NSNotification.Name.UIDeviceProximityStateDidChange,
object
: nil)
// 使用场景:音视频会话
let sessionType = 0
switch sessionType {
case YSSession.audio.rawValue: // 音频会话,打开近距离传感器
UIDevice.current.isProximityMonitoringEnabled = true
case YSSession.video.rawValue: // 视频会话,关闭近距离传感器
UIDevice.current.isProximityMonitoringEnabled = false
// 不锁屏
UIApplication.shared.isIdleTimerDisabled = true
default:
break
@objc
private
func proximityStateChanged(){
if
UIDevice.current.proximityState ==
true
{
//
近距离
print(
"
太近了,都贴脸上了
"
)
//
近距离锁屏,就是让屏幕变黑,省电
UIApplication.shared.isIdleTimerDisabled =
false
}
else
{
//
远距离
print(
"
太远了,都看不见你了
"
)
//
远距离不锁屏
UIApplication.shared.isIdleTimerDisabled =
true