IOS 傳感器

什么是傳感器

傳感器是一種感應(yīng)\檢測(cè)裝置, 目前已經(jīng)廣泛應(yīng)用于智能手機(jī)上

傳感器的作用

用于感應(yīng)\檢測(cè)設(shè)備周邊的信息
不同類型的傳感器, 檢測(cè)的信息也不一樣

iPhone中的下面現(xiàn)象都是由傳感器完成的

在地圖應(yīng)用中, 能判斷出手機(jī)頭面向的方向
一關(guān)燈, iPhone會(huì)自動(dòng)降低亮度讓屏幕顯得不是那么刺眼
打電話時(shí), 人臉貼近iPhone屏幕時(shí), 屏幕會(huì)自動(dòng)鎖屏, 達(dá)到省電的目的

傳感器的類型

  • iPhone內(nèi)置的傳感器有:
    運(yùn)動(dòng)傳感器\加速度傳感器\加速計(jì)(Motion/Accelerometer Sensor)
    環(huán)境光傳感器(Ambient Light Sensor)
    距離傳感器(Proximity Sensor)
    磁力計(jì)傳感器(Magnetometer Sensor)
    內(nèi)部溫度傳感器(Internal Temperature Sensor)
    濕度傳感器(Moisture Sensor)
    陀螺儀(Gyroscope)

... ...

環(huán)境光傳感器(Ambient Light Sensor)

  • 是iOS、Mac設(shè)備中最為古老的傳感器成員

  • 它能夠讓你在使用 Mac、iPhone、iPad時(shí),眼睛更為舒適
    從一個(gè)明亮的室外走入相對(duì)黑暗的室內(nèi)后,iOS設(shè)備會(huì)自動(dòng)調(diào)低亮度,讓屏幕顯得不再那么光亮刺眼

  • 當(dāng)你使用iPhone拍照時(shí),閃光燈會(huì)在一定條件下自動(dòng)開(kāi)啟
    幾乎所有的Mac 都帶有背光鍵盤(pán),當(dāng)周圍光線弱到一定條件時(shí),會(huì)自動(dòng)開(kāi)啟鍵盤(pán)背光

距離傳感器(Proximity Sensor)

  • 用于檢測(cè)是否有其他物體靠近設(shè)備屏幕
    當(dāng)你打電話或接電話時(shí)將電話屏幕貼近耳邊,iPhone會(huì)自動(dòng)關(guān)閉屏幕 ,好處是
  • 節(jié)省電量
  • 防止耳朵或面部不小心觸摸屏幕而引發(fā)一些不想要的意外操作
    題外話:利用距離傳感器,能找出很多電視劇的穿幫鏡頭

磁力計(jì)傳感器(Magnetometer Sensor)

可以感應(yīng)地球磁場(chǎng), 獲得方向信息, 使位置服務(wù)數(shù)據(jù)更精準(zhǔn)
可以用于電子羅盤(pán)和導(dǎo)航應(yīng)用
iPad的Smart Cover盒蓋睡眠操作就是基于磁力計(jì)傳感器

內(nèi)部溫度傳感器(Internal Temperature Sensor)

從iPad一代開(kāi)始,iOS設(shè)備都加入了一個(gè)內(nèi)部溫度傳感器,用于檢測(cè)內(nèi)部組件溫度,當(dāng)溫度超過(guò)系統(tǒng)設(shè)定的閾值時(shí),會(huì)出現(xiàn)以下提示
內(nèi)部溫度傳感器,對(duì)于提升iOS設(shè)備自身安全性與穩(wěn)定性有很大的幫助

濕度傳感器(Moisture Sensor)

濕度傳感器跟其他基于微電子的傳感器不同,是一個(gè)簡(jiǎn)單的物理傳感器

簡(jiǎn)單來(lái)說(shuō),濕度傳感器就是一張遇水變紅的試紙

Apple的維修人員就是通過(guò)檢測(cè)試紙是否變紅,來(lái)判斷設(shè)備是否進(jìn)水
(設(shè)備進(jìn)水不在保修范圍之內(nèi))

陀螺儀(Gyroscope)

陀螺儀是隨著iPhone4的上市首次出現(xiàn)在iOS設(shè)備上的傳感器
陀螺儀可以用于檢測(cè)設(shè)備的持握方式
陀螺儀的原理是檢測(cè)設(shè)備在X、Y、Z軸上所旋轉(zhuǎn)的角速度


iphoneXYZ軸

陀螺儀在賽車類游戲中有重大作用:
模擬汽車駕駛時(shí)方向盤(pán)旋轉(zhuǎn)的動(dòng)作
使得這類游戲的操控體驗(yàn)更為真實(shí)

運(yùn)動(dòng)傳感器\加速度傳感器\加速計(jì)(Motion/Accelerometer Sensor)

最早出現(xiàn)在iOS設(shè)備上的傳感器之一
加速計(jì)用于檢測(cè)設(shè)備在X、Y、Z軸上的加速度 (哪個(gè)方向有力的作用)
加速計(jì)可以用于檢測(cè)設(shè)備的搖晃,經(jīng)典應(yīng)用場(chǎng)景
搖一搖
計(jì)步器

距離傳感器的使用的

 //1.開(kāi)啟距離傳感器
        UIDevice.current.isProximityMonitoringEnabled = true
        
        //2.田間通知監(jiān)聽(tīng)變化
        NotificationCenter.default.addObserver(forName: UIDevice.proximityStateDidChangeNotification, object: nil, queue: OperationQueue.main)
        { (notice) in
            
            if UIDevice.current.proximityState
            {
                print("有物體靠近")
                
            }else
            {
                print("有物體離開(kāi)")
            }
        }

陀螺儀

 //判斷陀螺儀是否可用
        if !manager.isGyroAvailable
        {
            return
        }
         // 2.設(shè)置采樣間隔
        manager.gyroUpdateInterval = 1
        //3. 開(kāi)始采樣
        manager.startGyroUpdates(to: OperationQueue.main)
        { (gyroData, error) in
            if error != nil
            {
                return
            }
            
            let rate = gyroData?.rotationRate
            print(rate?.x, rate?.y, rate?.z)
            
            
        }

加速器

 //加速器
    func accelerometor()
    {
        //判斷家加速器是否可用
        if !manager.isAccelerometerAvailable
        {
            return
        }
        //設(shè)置采樣間隔
        manager.accelerometerUpdateInterval = 0.5
        //開(kāi)始采樣
        manager.startAccelerometerUpdates(to: OperationQueue.main)
        { (accelerometer, error) in
            if error != nil
            {
                return
            }
            let acceleration = accelerometer?.acceleration
            print(acceleration?.x, acceleration?.y, acceleration?.z)
            
        }
    }

磁力器

func cili()
    {
        //1. 獲取磁力計(jì)傳感器的值
           // 1.判斷磁力計(jì)是否可用
        if !manager.isMagnetometerAvailable
        {
            return
        }
        //2.設(shè)置采樣間隔
        manager.deviceMotionUpdateInterval = 2
        //3. 開(kāi)始采樣
        manager.startMagnetometerUpdates(to: OperationQueue.main)
        { (data, error) in
            if error != nil
            {
                return
            }
            
            let field = data?.magneticField
            print(field?.x,field?.y, field?.z)
            
        }
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容