新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS傳感器概述
基本概念

HarmonyOS 傳感器是應(yīng)用訪問底層硬件傳感器的一種設(shè)備抽象概念。開發(fā)者根據(jù)傳感器提供的 Sensor API,可以查詢設(shè)備上的傳感器,訂閱傳感器的數(shù)據(jù),并根據(jù)傳感器數(shù)據(jù)定制相應(yīng)的算法,開發(fā)各類應(yīng)用,比如指南針、運動健康、游戲等。
根據(jù)傳感器的用途,可以將傳感器分為六大類:運動類傳感器、環(huán)境類傳感器、方向類傳感器、光線類傳感器、健康類傳感器、其他類傳感器(如霍爾傳感器),每一大類傳感器包含不同類型的傳感器,某種類型的傳感器可能是單一的物理傳感器,也可能是由多個物理傳感器復(fù)合而成。傳感器列表如[圖1]所示。
| 分類 | API類名 | 傳感器類型 | 中文描述 | 說明 | 主要用途 |
|---|---|---|---|---|---|
| 運動類 | ohos.sensor.agent.CategoryMotionAgent | SENSOR_TYPE_ACCELEROMETER | 加速度傳感器 | 測量三個物理軸(x、y 和 z)上,施加在設(shè)備上的加速度(包括重力加速度),單位 : m/s2 | 檢測運動狀態(tài) |
| SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED | 未校準加速度傳感器 | 測量三個物理軸(x、y 和 z)上,施加在設(shè)備上的未校準的加速度(包括重力加速度),單位 : m/s2 | 檢測加速度偏差估值 | ||
| SENSOR_TYPE_LINEAR_ACCELERATION | 線性加速度傳感器 | 測量三個物理軸(x、y 和 z)上,施加在設(shè)備上的線性加速度(不包括重力加速度),單位 : m/s2 | 檢測每個單軸方向上的線性加速度 | ||
| SENSOR_TYPE_GRAVITY | 重力傳感器 | 測量三個物理軸(x、y 和 z)上,施加在設(shè)備上的重力加速度,單位 : m/s2 | 測量重力大小 | ||
| SENSOR_TYPE_GYROSCOPE | 陀螺儀傳感器 | 測量三個物理軸(x、y 和 z)上,設(shè)備的旋轉(zhuǎn)角速度,單位 : rad/s | 測量旋轉(zhuǎn)的角速度 | ||
| SENSOR_TYPE_GYROSCOPE_UNCALIBRATED | 未校準陀螺儀傳感器 | 測量三個物理軸(x、y 和 z)上,設(shè)備的未校準旋轉(zhuǎn)角速度,單位 : rad/s | 測量旋轉(zhuǎn)的角速度及偏差估值 | ||
| SENSOR_TYPE_SIGNIFICANT_MOTION | 大幅度動作傳感器 | 測量三個物理軸(x、y 和 z)上,設(shè)備是否存在大幅度運動;如果取值為1則代表存在大幅度運動,取值為0則代表沒有大幅度運動 | 用于檢測設(shè)備是否存在大幅度運動 | ||
| SENSOR_TYPE_DROP_DETECTION | 跌落檢測傳感器 | 檢測設(shè)備的跌落狀態(tài);如果取值為1則代表發(fā)生跌落,取值為0則代表沒有發(fā)生跌落 | 用于檢測設(shè)備是否發(fā)生了跌落 | ||
| SENSOR_TYPE_PEDOMETER_DETECTION | 計步器檢測傳感器 | 檢測用戶的計步動作;如果取值為1則代表用戶產(chǎn)生了計步行走的動作;取值為0則代表用戶沒有發(fā)生運動 | 用于檢測用戶是否有計步的動作 | ||
| SENSOR_TYPE_PEDOMETER | 計步器傳感器 | 統(tǒng)計用戶的行走步數(shù) | 用于提供用戶行走的步數(shù)數(shù)據(jù) | ||
| 環(huán)境類 | ohos.sensor.agent.CategoryEnvironmentAgent | SENSOR_TYPE_AMBIENT_TEMPERATURE | 環(huán)境溫度傳感器 | 測量環(huán)境溫度,單位 : 攝氏度 (°C) | 測量環(huán)境溫度 |
| SENSOR_TYPE_MAGNETIC_FIELD | 磁場傳感器 | 測量三個物理軸向(x、y、z)上,環(huán)境地磁場,單位 : μT | 創(chuàng)建指南針 | ||
| SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED | 未校準磁場傳感器 | 測量三個物理軸向(x、y、z)上,未校準環(huán)境地磁場,單位 : μT | 測量地磁偏差估值 | ||
| SENSOR_TYPE_HUMIDITY | 濕度傳感器 | 測量環(huán)境的相對濕度,以百分比 (%) 表示 | 監(jiān)測露點、絕對濕度和相對濕度 | ||
| SENSOR_TYPE_BAROMETER | 氣壓計傳感器 | 測量環(huán)境氣壓,單位 : hPa 或 mbar | 測量環(huán)境氣壓 | ||
| SENSOR_TYPE_SAR | 比吸收率傳感器 | 測量比吸收率,單位:W/kg | 測量設(shè)備的電磁波能量吸收比值。 | ||
| 方向類 | ohos.sensor.agent.CategoryOrientationAgent | SENSOR_TYPE_6DOF | 6自由度傳感器 | 測量上下、前后、左右方向上的位移,單位:m或mm;測量俯仰、偏擺、翻滾的角度,單位:rad | 檢測設(shè)備的三個平移自由度以及旋轉(zhuǎn)自由度,用于目標定位追蹤,如:VR |
| SENSOR_TYPE_SCREEN_ROTATION | 屏幕旋轉(zhuǎn)傳感器 | 檢測設(shè)備屏幕的旋轉(zhuǎn)狀態(tài) | 用于檢測設(shè)備屏幕是否發(fā)生了旋轉(zhuǎn) | ||
| SENSOR_TYPE_DEVICE_ORIENTATION | 設(shè)備方向傳感器 | 測量設(shè)備的旋轉(zhuǎn)方向,單位:rad | 用于檢測設(shè)備旋轉(zhuǎn)方向的角度值 | ||
| SENSOR_TYPE_ORIENTATION | 方向傳感器 | 測量設(shè)備圍繞所有三個物理軸(x、y、z)旋轉(zhuǎn)的角度值,單位:rad | 用于提供屏幕旋轉(zhuǎn)的3個角度值 | ||
| SENSOR_TYPE_ROTATION_VECTOR | 旋轉(zhuǎn)矢量傳感器 | 測量設(shè)備旋轉(zhuǎn)矢量,復(fù)合傳感器:由加速度傳感器、磁場傳感器、陀螺儀傳感器合成 | 檢測設(shè)備相對于東北天坐標系的方向 | ||
| SENSOR_TYPE_GAME_ROTATION_VECTOR | 游戲旋轉(zhuǎn)矢量傳感器 | 測量設(shè)備游戲旋轉(zhuǎn)矢量,復(fù)合傳感器:由加速度傳感器、陀螺儀傳感器合成 | 應(yīng)用于游戲場景 | ||
| SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR | 地磁旋轉(zhuǎn)矢量傳感器 | 測量設(shè)備地磁旋轉(zhuǎn)矢量,復(fù)合傳感器:由加速度傳感器、磁場傳感器合成 | 用于測量地磁旋轉(zhuǎn)矢量 | ||
| 光線類 | ohos.sensor.agent.CategoryLightAgent | SENSOR_TYPE_PROXIMITY | 接近光傳感器 | 測量可見物體相對于設(shè)備顯示屏的接近或遠離狀態(tài) | 通話中設(shè)備相對人的位置 |
| SENSOR_TYPE_TOF | ToF傳感器 | 測量光在介質(zhì)中行進一段距離所需的時間 | 人臉識別 | ||
| SENSOR_TYPE_AMBIENT_LIGHT | 環(huán)境光傳感器 | 測量設(shè)備周圍光線強度,單位:lux | 自動調(diào)節(jié)屏幕亮度,檢測屏幕上方是否有遮擋 | ||
| SENSOR_TYPE_COLOR_TEMPERATURE | 色溫傳感器 | 測量環(huán)境中的色溫 | 應(yīng)用于設(shè)備的影像處理 | ||
| SENSOR_TYPE_COLOR_RGB | RGB顏色傳感器 | 測量環(huán)境中的RGB顏色值 | 通過三原色的反射比率實現(xiàn)顏色檢測 | ||
| SENSOR_TYPE_COLOR_XYZ | XYZ顏色傳感器 | 測量環(huán)境中的XYZ顏色值 | 用于辨識真色色點,還原色彩更真實 | ||
| 健康類 | ohos.sensor.agent.CategoryBodyAgent | SENSOR_TYPE_HEART_RATE | 心率傳感器 | 測量用戶的心率數(shù)值 | 用于提供用戶的心率健康數(shù)據(jù) |
| SENSOR_TYPE_WEAR_DETECTION | 佩戴檢測傳感器 | 檢測用戶是否佩戴 | 用于檢測用戶是否佩戴智能穿戴 | ||
| 其他類 | ohos.sensor.agent.CategoryOtherAgent | SENSOR_TYPE_HALL | 霍爾傳感器 | 測量設(shè)備周圍是否存在磁力吸引 | 設(shè)備的皮套模式 |
| SENSOR_TYPE_GRIP_DETECTOR | 手握檢測傳感器 | 檢測設(shè)備是否有抓力施加 | 用于檢查設(shè)備側(cè)邊是否被手握住 | ||
| SENSOR_TYPE_MAGNET_BRACKET | 磁鐵支架傳感器 | 檢測設(shè)備是否被磁吸 | 檢測設(shè)備是否位于車內(nèi)或者室內(nèi) | ||
| SENSOR_TYPE_PRESSURE_DETECTOR | 按壓檢測傳感器 | 檢測設(shè)備是否有壓力施加 | 用于檢測設(shè)備的正上方是否存在按壓 |
運作機制
HarmonyOS 傳感器包含如下四個模塊:Sensor API、Sensor Framework、Sensor Service、HD_IDL 層。
圖1HarmonyOS 傳感器
- Sensor API:提供傳感器的基礎(chǔ) API,主要包含查詢傳感器的列表、訂閱/取消傳感器的數(shù)據(jù)、執(zhí)行控制命令等,簡化應(yīng)用開發(fā)。
- Sensor Framework:主要實現(xiàn)傳感器的訂閱管理,數(shù)據(jù)通道的創(chuàng)建、銷毀、訂閱與取消訂閱,實現(xiàn)與SensorService 的通信。
- Sensor Service:主要實現(xiàn) HD_IDL 層數(shù)據(jù)接收、解析、分發(fā),前后臺的策略管控,對該設(shè)備 Sensor 的管理;Sensor 權(quán)限管控等。
- HD_IDL 層:對不同的 FIFO、頻率進行策略選擇;以及對不同設(shè)備(車機、智能穿戴、智慧屏等)的適配。
約束與限制
- 針對某些傳感器,開發(fā)者需要請求相應(yīng)的權(quán)限,才能獲取到相應(yīng)傳感器的數(shù)據(jù)。
| 傳感器 | HarmonyOS 權(quán)限名 | 敏感級別 | 權(quán)限描述 |
|---|---|---|---|
| 加速度傳感器、加速度未校準傳感器、線性加速度傳感器 | ohos.permission.ACCELEROMETER | system_grant | 允許訂閱Motion組對應(yīng)的加速度傳感器的數(shù)據(jù) |
| 陀螺儀傳感器、陀螺儀未校準傳感器 | ohos.permission.GYROSCOPE | system_grant | 允許訂閱 Motion 組對應(yīng)的陀螺儀傳感器的數(shù)據(jù) |
| 計步器 | ohos.permission.ACTIVITY_MOTION | user_grant | 允許訂閱運動狀態(tài) |
| 心率 | ohos.permission.READ_HEALTH_DATA | user_grant | 允許讀取健康數(shù)據(jù) |
- 傳感器數(shù)據(jù)訂閱和取消訂閱接口成對調(diào)用,當(dāng)不再需要訂閱傳感器數(shù)據(jù)時,開發(fā)者需要調(diào)用取消訂閱接口進行資源釋放。
新聞名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS傳感器概述
網(wǎng)站鏈接:http://www.5511xx.com/article/ccssdpj.html


咨詢
建站咨詢
