前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenHarmony/HarmonyOS传感器开发

OpenHarmony/HarmonyOS传感器开发

作者头像
徐建国
发布2023-02-23 11:34:35
9270
发布2023-02-23 11:34:35
举报
文章被收录于专栏:个人路线

@ohos.sensor (传感器)

作者:坚果,公众号:”大前端之旅“,哔哩哔哩,OpenHarmony布道师,CSDN博客专家,InfoQ签约作者,OpenHarmony校源行开源大使,51CTO博客专家博主,阿里云博客专家。

要使用传感器数据,首先需要导入传感器模块

代码语言:javascript
复制
import sensor from '@ohos.sensor';

这个接口数据还是比较敏感的,所以需要添加权限

这个时候就需要在config.JSON或者module.json5中去配置

FA

代码语言:javascript
复制
"reqPermissions": [
  {
  "name": "ohos.permission.ACCELEROMETER"
  }
]

Stage

代码语言:javascript
复制
"requestPermissions": [
  {
   "name": "ohos.permission.ACCELEROMETER"
  }
]

接下来我们就来看一下传感器类型。

SensorType

表示要订阅或取消订阅的传感器类型。

系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.Sensor

名称

默认值

说明

SENSOR_TYPE_ID_ACCELEROMETER

1

加速度传感器。

SENSOR_TYPE_ID_GYROSCOPE

2

陀螺仪传感器。

SENSOR_TYPE_ID_AMBIENT_LIGHT

5

环境光传感器。

SENSOR_TYPE_ID_MAGNETIC_FIELD

6

磁场传感器。

SENSOR_TYPE_ID_BAROMETER

8

气压计传感器。

SENSOR_TYPE_ID_HALL

10

霍尔传感器。

SENSOR_TYPE_ID_PROXIMITY

12

接近光传感器。

SENSOR_TYPE_ID_HUMIDITY

13

湿度传感器。

SENSOR_TYPE_ID_ORIENTATION

256

方向传感器。

SENSOR_TYPE_ID_GRAVITY

257

重力传感器。

SENSOR_TYPE_ID_LINEAR_ACCELERATION

258

线性加速度传感器。

SENSOR_TYPE_ID_ROTATION_VECTOR

259

旋转矢量传感器。

SENSOR_TYPE_ID_AMBIENT_TEMPERATURE

260

环境温度传感器。

SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED

261

未校准磁场传感器。

SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED

263

未校准陀螺仪传感器。

SENSOR_TYPE_ID_SIGNIFICANT_MOTION

264

有效运动传感器。

SENSOR_TYPE_ID_PEDOMETER_DETECTION

265

计步检测传感器。

SENSOR_TYPE_ID_PEDOMETER

266

计步传感器。

SENSOR_TYPE_ID_HEART_RATE

278

心率传感器。

SENSOR_TYPE_ID_WEAR_DETECTION

280

佩戴检测传感器。

SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED

281

未校准加速度计传感器。

Response

传感器数据的时间戳。

系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.Sensor

名称

参数类型

可读

可写

说明

timestamp

number

传感器数据上报的时间戳。

sensor.on

ACCELEROMETER

on(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: Callback,options?: Options): void

监听加速度传感器的数据变化。如果多次调用该接口,仅最后一次调用生效。

需要权限:ohos.permission.ACCELEROMETER

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名

类型

必填

说明

type

SensorType

要订阅的加速度传感器类型为SENSOR_TYPE_ID_ACCELEROMETER。

callback

Callback<AccelerometerResponse>

注册加速度传感器的回调函数,上报的数据类型为AccelerometerResponse。

options

Options

可选参数列表,设置上报频率,默认值为200000000ns。

示例:

代码语言:javascript
复制
import sensor from '@ohos.sensor';
import deviceInfo from '@ohos.deviceInfo'
@Entry
@Component
struct Index {
  @State message: string = 'Hello World'


  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(30)
          .fontWeight(FontWeight.Bold).onClick(()=>{
          sensor.on(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER,function(data){
            console.info('X-coordinate component: ' + data.x);
            console.info('Y-coordinate component: ' + data.y);
            console.info('Z-coordinate component: ' + data.z);
       
          },
            {interval: 10000000}
          );
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

AccelerometerResponse

加速度传感器数据,继承于Response。

系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.Sensor

名称

参数类型

可读

可写

说明

x

number

施加在设备x轴的加速度,单位 : m/s2。

y

number

施加在设备y轴的加速度,单位 : m/s2。

z

number

施加在设备z轴的加速度,单位 : m/s2。

PEDOMETER_DETECTION

on(type: SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback: Callback, options?: Options): void

监听计步检测传感器的数据变化。如果多次调用该接口,仅最后一次调用生效。

需要权限:ohos.permission.ACTIVITY_MOTION

系统能力:SystemCapability.Sensors.Sensor

AMBIENT_TEMPERATURE

on(type:SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE,callback:Callback, options?: Options): void

监听环境温度传感器的数据变化。如果多次调用该接口,仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

代码语言:javascript
复制
import sensor from '@ohos.sensor';
import deviceInfo from '@ohos.deviceInfo'
@Entry
@Component
struct Index {
  @State message: string = 'Hello '


  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(30)
          .fontWeight(FontWeight.Bold).onClick(()=>{
          sensor.on(sensor.SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE,function(data){
            console.info('Temperature: ' + data.temperature);
         
          },
            {interval: 10000000}
          );

        })
      }
      .width('100%')
    }
    .height('100%')
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • @ohos.sensor (传感器)
    • SensorType
      • Response
        • sensor.on
          • ACCELEROMETER
        • AccelerometerResponse
          • PEDOMETER_DETECTION
          • AMBIENT_TEMPERATURE
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档