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

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


咨詢
建站咨詢
