Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >OpenHarmony/HarmonyOS传感器开发

OpenHarmony/HarmonyOS传感器开发

作者头像
徐建国
发布于 2023-02-23 03:34:35
发布于 2023-02-23 03:34:35
97900
代码可运行
举报
文章被收录于专栏:个人路线个人路线
运行总次数:0
代码可运行

@ohos.sensor (传感器)

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sensor from '@ohos.sensor';

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

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

FA

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"reqPermissions": [
  {
  "name": "ohos.permission.ACCELEROMETER"
  }
]

Stage

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HarmonyOS学习路之开发篇—设备管理(传感器开发)
HarmonyOS传感器是应用访问底层硬件传感器的一种设备抽象概念。开发者根据传感器提供的Sensor API,可以查询设备上的传感器,订阅传感器的数据,并根据传感器数据定制相应的算法,开发各类应用,比如指南针、运动健康、游戏等。
爱吃土豆丝的打工人
2023/10/15
3420
HarmonyOS学习路之开发篇—设备管理(传感器开发)
原 获取Android获取传感器列表
Android 4.4 (API等级19)支持以下传感器: TYPE_ACCELEROMETER 加速度传感器,单位是m/s2,测量应用于设备X、Y、Z轴上的加速度 传感器类型值(Sensor Type):1 (0x00000001) TYPE_AMBIENT_TEMPERATURE 温度传感器,单位是℃ 传感器类型值(Sensor Type): 13 (0x0000000d) TYPE_GAME_ROTATION_VECTOR 游戏动作传感器,不收电磁干扰影响 传感
霡霂
2018/06/04
2.5K0
Android传感器_传感器网络的基本功能
Android系统提供了对传感器的支持,如果手机的硬件提供了这些传感器的话,那么我们就可以通过代码获取手机外部的状态。比如说手机的摆放状态、外界的磁场、温度和压力等等。 对于我们开发者来说,开发传感器十分简单。只需要注册监听器,接收回调的数据就行了,下面来详细介绍下各传感器的开发。
全栈程序员站长
2022/11/11
1.3K0
Android传感器_传感器网络的基本功能
传感器开发流程!_传感器工艺流程
今天公司要求我进行传感器的开发,而且只给2天时间,反映下自己没做过这方面可能需要时间延长下,不管,就给你两天时间! 干不完就使劲加班…现在企业压榨劳动力太赤裸裸了,没办法,纵使心中万匹草泥马路过也得干活啊!
全栈程序员站长
2022/11/11
2K2
传感器开发流程!_传感器工艺流程
【Sensors】运动传感器(3)
重力,线性加速度,旋转矢量,显着运动,步进计数器和步进检测器传感器基于硬件或基于软件。 加速计和陀螺仪传感器始终基于硬件。 大多数由Android设备驱动的设备都有一个加速计,而且现在很多设备都包含一个陀螺仪。基于软件的传感器的可用性更加可变,因为它们通常依靠一个或多个硬件传感器来获取其数据。根据设备的不同,这些基于软件的传感器可以从加速计和磁力计或陀螺仪获取数据。
py3study
2020/01/14
2.2K0
Android开发笔记(五十九)巧用传感器
传感器是Android用来感知周围环境以及运动信息的工具。因为具体的感应信息依赖于相关硬件,所以虽然Android提供了众多的感应器,但不是每部手机都能支持这么多感应器,恰恰相反,大多数安卓手机仅仅支持包括加速度在内的少数几个感应器。 传感器借助于硬件来监听环境改变的事件,从这个意义上来说,Android的事件都是由某个传感器触发,只不过这个触发来源可能是软件,也可能是屏幕,甚至可能是手机的sim卡。回顾一下之前的事件通信章节,我们会发现,原来它们在本质上跟传感器是类似的,比如说: 1、软件感应:UI事件(参见《Android开发笔记(四十四)动态UI事件》)、媒体播放事件(参见《Android开发笔记(五十七)录像录音与播放》)、浏览器加载、交互与下载事件(参见《Android开发笔记(六十四)网页加载与JS调用》)。 2、屏幕感应:点击事件(参见《Android开发笔记(四十三)点击事件》)、手势事件(参见《Android开发笔记(四十五)手势事件》)、拖动条的拖动事件(参见《Android开发笔记(五十八)铃声与震动》)。 3、sim卡感应:手机相关事件(参见《Android开发笔记(四十六)手机相关事件》)。 4、摄像头感应:拍照事件(参见《Android开发笔记(五十六)摄像头拍照》)。 5、麦克风感应:录音事件(参见《Android开发笔记(五十七)录像录音与播放》)。 6、系统感应:电量事件、屏幕开关事件(参见《Android开发笔记(一百一十七)app省电方略》)。 下面是目前Android支持的感应器类型: 1 TYPE_ACCELEROMETER //加速度 2 TYPE_MAGNETIC_FIELD //磁场 3 TYPE_ORIENTATION //方向,该类型已弃用,取而代之的是getOrientation方法 4 TYPE_GYROSCOPE //陀螺仪 5 TYPE_LIGHT //光线 6 TYPE_PRESSURE //压力 7 TYPE_TEMPERATURE //温度,该类型已弃用,取而代之的是TYPE_AMBIENT_TEMPERATURE 8 TYPE_PROXIMITY //距离 9 TYPE_GRAVITY //重力 10 TYPE_LINEAR_ACCELERATION //线性加速度 11 TYPE_ROTATION_VECTOR //旋转矢量 12 TYPE_RELATIVE_HUMIDITY //湿度 13 TYPE_AMBIENT_TEMPERATURE //环境温度 14 TYPE_MAGNETIC_FIELD_UNCALIBRATED //无标定磁场 15 TYPE_GAME_ROTATION_VECTOR //无标定旋转矢量 16 TYPE_GYROSCOPE_UNCALIBRATED //未校准陀螺仪 17 TYPE_SIGNIFICANT_MOTION //特殊动作 18 TYPE_STEP_DETECTOR //步行检测,用户每走一步就触发一次事件 19 TYPE_STEP_COUNTER //计步器,记录激活后的步伐数 20 TYPE_GEOMAGNETIC_ROTATION_VECTOR //地磁旋转矢量
aqi00
2019/01/18
1.3K0
android传感器开发与智能设备案例实战_传感器的选择
对于android应用开发来说,开发传感器应用十分简单,开发者只要为指定监听器注册一个监听器即可。android系统提供了驱动程序去管理这些传感器硬件,当外部环境发生改变时,android系统会通过传感器获取外部环境的数据,并将数据传给监听器的监听方法。
全栈程序员站长
2022/11/11
6320
iOS---开发实用传感器
传感器 1.什么是传感器 传感器是一种感应\检测装置, 目前已经广泛应用于智能手机上 2.传感器的作用 用于感应\检测设备周边的信息 不同类型的传感器, 检测的信息也不一样 iPhone中的下面现象都是由传感器完成的 在地图应用中, 能判断出手机头面向的方向 一关灯, iPhone会自动降低亮度让屏幕显得不是那么刺眼 打电话时, 人脸贴近iPhone屏幕时, 屏幕会自动锁屏, 达到省电的目的 3.传感器的类型 iPhone5中内置的传感器有 运动传感器\加速度传感器\加速计(Motion/Accelerom
用户1941540
2018/05/11
1.4K0
054Android操作系统11种传感器介绍
Android操作系统11种传感器介绍 在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用。
上善若水.夏
2018/09/28
9180
Android传感器开发与智能设备案例实战_Android移动应用开发
Android是一个面向应用程序开发的丰富平台,它除了拥有许多具有吸引力的用户界面元素、数据管理和网络应用等优秀的功能之外,还提供了很多颇具特色的接口,比如对各种传感器的支持。Android应用可以通过传感器来获取设备的外界条件,包括手机设备的运行状态、当前摆放方向、外界的磁场、温度和压力等。通过在Android应用中添加传感器,可以充分激发开发者、用户的想象力,可以开发出各种有特色、有创意的应用程序,比如电子软盘、水平仪等。在本节中我们首先对传感器的基本概念进行了简要的介绍,之后通过一系列的具体案例给大家讲解Android中传感器开发的具体知识。
全栈程序员站长
2022/11/10
1.4K0
安卓传感器开发_android传感器开发
昨天利用Vibrator将手机改造成振动器,女票大人很满意,今天再接再厉,研究一下Android传感器如何开发……
全栈程序员站长
2022/11/11
6990
Android开发高级进阶——传感器
SensorManager提供的注册传感器的方法为registerListener(SensorEventListener listener, Sensor sensor, int rate),该方法的三个参数说明如下:
trampcr
2018/09/28
1.3K0
Android开发高级进阶——传感器
Android开发(26) 看看手机里都有什么传感器
概述 通过代码查看手机里的传感器列表,看看手机里都有哪种传感器。 代码 package zyf.demo.sensordemo; import java.util.List;
张云飞Vir
2020/03/16
7990
2016级移动应用开发在线测试13-Location、Sensor & Network
1. 充分利用智能手机的GPS定位信息,创造了O2O的商业模式,打通了线上与线下的信息流和商流,极大地推动了移动互联网的迅猛发展,下面关于GPS技术描述错误的是() 
达达前端
2022/04/29
4630
Android传感器_悦动凸轮轴位置传感器故障
1)Android所有的传感器都归传感器管理器 SensorManager 管理,获取传感器管理器的方法很简单:
全栈程序员站长
2022/11/10
3500
Android传感器_悦动凸轮轴位置传感器故障
传感器实现仿微信摇一摇功能
如果你英文不错以及可以翻墙访问的话,建议您不妨直接去谷歌官网看文档:https://developer.android.com/reference/android/hardware/Sensor.html。
程序员小猿
2021/01/18
1.5K0
传感器实现仿微信摇一摇功能
iOS传感器开发——加速度传感器,螺旋仪传感器,磁力传感器的应用
        通过加速度传感器,螺旋仪传感器和磁力传感,我们可以获取到手机在当前三维空间中的形态,加速度传感器也被称作重力感应。在一些赛车游戏中可以广泛得到应用。在iOS5之前,iPhone支持的传感器有限,关于加速度传感器的管理用UIAccelerometer这个类负责,iOS5之后,有关设备空间信息的管理交由了CoreMotion这个框架,CoreMotion将多种传感器统一进行管理计算。
珲少
2018/08/15
2.1K0
iOS传感器开发——加速度传感器,螺旋仪传感器,磁力传感器的应用
MPU9250传感器
MPU9250 内部包括 3 轴陀螺仪、3 轴加速度计和 3 轴磁力计,这3个功能输出都是 16 位的数字量; 可以通过常用的数据总线( IIC) 接口和单片机进行数据交互,传输速率 400 kHz /s。陀螺仪的角速度测量范围±2000(° /s),具有良好的动态响应特性。加速度计的测量范围最大为±16g( g 为重力加速度),静态测量精度高。磁力计采用高灵度霍尔型传感器进行数据采集,磁感应强度测量范围为±4800μT,可用于对偏航角的辅助测量。 MPU9250 自带的数字运动处理器DMP硬件加速引擎,可以整合九轴传感器数据,向应用端输出完整的 9 轴融合演算数据。 有了 DMP,我们可以使用运动处理库非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。
全栈程序员站长
2022/07/23
1.8K0
MPU9250传感器
《鸿蒙系统:开启智能新时代的璀璨之星》
鸿蒙系统的发展历程堪称一部科技创新的传奇。2012 年,华为前瞻性地启动鸿蒙系统研发项目,彼时或许很少有人能预见到它未来的辉煌。2019 年,鸿蒙系统首个开发者预览版的发布,如同夜空中的一颗璀璨新星,吸引了全球开发者的目光。
正在走向自律
2024/12/18
1840
《鸿蒙系统:开启智能新时代的璀璨之星》
Windows 8.1 低功耗蓝牙开发
1. 概述 在蓝牙4.0发布以前,给大家的直观印象就是蓝牙耳机,它就是用来满足短距离内中等带宽的音频通信需求。然而蓝牙4.0发布之后,用途就大不一样了,特别是现在物联网和可穿戴之风盛行的年代,很多小玩意都使用了它,如心率计、手环、钥匙扣等等物件,最终它能够和用户的手机、Pad以及PC等设备连接,实现五花八门的功能。为什么蓝牙4.0的用途广泛了呢?首先归功于低功耗,运行Bluetooth Low Energy的设备,一节纽扣电池可以支持其半年的时间;其次是低成本,如TI公司的CC2540蓝牙SoC售价是1美元
ShiJiong
2018/01/10
2.4K0
Windows 8.1 低功耗蓝牙开发
推荐阅读
相关推荐
HarmonyOS学习路之开发篇—设备管理(传感器开发)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验