码迷,mamicode.com
首页 > 其他好文 > 详细

距离传感器

时间:2017-02-12 19:06:47      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:enter   raw   真机   视频   enabled   看不见   observer   ide   elf   

// 近距离传感器的实现封装在UIKit中

// 需要使用真机测试

import UIKit

enum YSSession:Int {
    case audio = 1 // 音频
    case video = 2 // 视频
}

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 系统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
        }
    }
}

 

距离传感器

标签:enter   raw   真机   视频   enabled   看不见   observer   ide   elf   

原文地址:http://www.cnblogs.com/panda1024/p/6391482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!