鸿蒙语言基础类库:【@system.sensor (传感器)】

传感器

说明:

  • 从API Version 8开始,该接口不再维护,推荐使用新接口[@ohos.sensor]。
  • 本模块首批接口从API version 4开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 该功能使用需要对应硬件支持,仅支持真机调试。

导入模块

复制代码
import sensor from '@system.sensor';

传感器错误码列表

错误码 说明
900 当前设备不支持相应的传感器。

sensor.subscribeAccelerometer

subscribeAccelerometer(Object): void

观察加速度数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.ACCELEROMETER,该权限为系统权限

参数:

参数名 类型 必填 说明
interval string 频率参数,加速度的回调函数执行频率。 默认为normal,可选值有: - game:极高的回调频率,20ms/次,适用于游戏。 - ui:较高的回调频率,60ms/次,适用于UI更新。 - normal:普通的回调频率,200ms/次,低功耗。
success Function 感应到加速度数据变化后的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
x number x轴的加速度。
y number y轴的加速度。
z number z轴的加速度。

示例:

复制代码
sensor.subscribeAccelerometer({
  interval: 'normal',
  success: function(ret) {
    console.log('X-axis data: ' + ret.x);
    console.log('Y-axis data: ' + ret.y);
    console.log('Z-axis data: ' + ret.z);
  },
  fail: function(data, code) {
    console.error('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeAccelerometer

unsubscribeAccelerometer(): void

取消订阅加速度数据。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.ACCELEROMETER,该权限为系统权限

示例:

复制代码
sensor.unsubscribeAccelerometer();

sensor.subscribeCompass

subscribeCompass(Object): void

订阅罗盘数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名 类型 必填 说明
success Function 罗盘数据改变后触发的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
direction number 设备面对的方向度数。

示例:

复制代码
sensor.subscribeCompass({
  success: function(ret) {
    console.log('get data direction:' + ret.direction);
  },
  fail: function(data, code) {
    console.error('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeCompass

unsubscribeCompass(): void

取消订阅罗盘。

系统能力:SystemCapability.Sensors.Sensor

示例:

复制代码
sensor.unsubscribeCompass();

sensor.subscribeProximity

subscribeProximity(Object): void

订阅距离感应数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名 类型 必填 说明
success Function 距离感应数据改变后调用的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
distance number 可见物体相对于设备显示屏的接近或远离状态。

示例:

复制代码
sensor.subscribeProximity({
  success: function(ret) {
    console.log('get data distance:' + ret.distance);
  },
  fail: function(data, code) {
    console.error('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeProximity

unsubscribeProximity(): void

取消订阅距离感应。

系统能力:SystemCapability.Sensors.Sensor

示例:

复制代码
sensor.unsubscribeProximity();

sensor.subscribeLight

sensor.subscribeLight(Object): void

订阅环境光线感应数据变化。再次调用时,会覆盖前一次调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名 类型 必填 说明
success Function 光线感应数据改变后的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
intensity number 光线强度,单位为lux。

示例:

复制代码
sensor.subscribeLight({
  success: function(ret) {
    console.log('get data intensity:' + ret.intensity);
  },
  fail: function(data, code) {
    console.error('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeLight

unsubscribeLight(): void

取消订阅环境光线感应。

系统能力:SystemCapability.Sensors.Sensor

示例:

复制代码
sensor.unsubscribeLight();

sensor.subscribeStepCounter

subscribeStepCounter(Object): void

订阅计步传感器数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.ACTIVITY_MOTION

参数:

参数名 类型 必填 说明
success Function 计步传感器数据改变后的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
steps number 计步传感器重启后累计记录的步数。

示例:

复制代码
sensor.subscribeStepCounter({
  success: function(ret) {
    console.log('get step value:' + ret.steps);
  },
  fail: function(data, code) {
    console.log('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeStepCounter

unsubscribeStepCounter(): void

取消订阅计步传感器。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.ACTIVITY_MOTION

示例:

复制代码
sensor.unsubscribeStepCounter();

sensor.subscribeBarometer

subcribeBarometer(Object): void

订阅气压传感器数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名 类型 必填 说明
success Function 气压传感器数据改变后的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
pressure number 气压值,单位:帕斯卡。

示例:

复制代码
sensor.subscribeBarometer({
  success: function(ret) {
    console.log('get data value:' + ret.pressure);
  },
  fail: function(data, code) {
    console.log('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeBarometer

unsubscribeBarometer(): void

取消订阅气压传感器。

系统能力:SystemCapability.Sensors.Sensor

示例:

复制代码
sensor.unsubscribeBarometer();

sensor.subscribeHeartRate

subscribeHeartRate(Object): void

订阅心率传感器数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.READ_HEALTH_DATA

参数:

参数名 类型 必填 说明
success Function 心率传感器数据改变后的回调函数,默认频率5s/次。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
heartRate number 心率值。

示例:

复制代码
sensor.subscribeHeartRate({
  success: function(ret) {
    console.log('get heartrate value:' + ret.heartRate);
  },
  fail: function(data, code) {
    console.log('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeHeartRate

unsubscribeHeartRate(): void

取消订阅心率。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.READ_HEALTH_DATA

示例:

复制代码
sensor.unsubscribeHeartRate();

sensor.subscribeOnBodyState

subscribeOnBodyState(Object): void

订阅设备佩戴状态。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名 类型 必填 说明
success Function 穿戴状态改变后的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
value boolean 是否已佩戴。

示例:

复制代码
sensor.subscribeOnBodyState({
  success: function(ret) {
    console.log('get on-body state value:' + ret.value);
  },
  fail: function(data, code) {
    console.log('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeOnBodyState

unsubscribeOnBodyState(): void

取消订阅设备佩戴状态。

系统能力:SystemCapability.Sensors.Sensor

示例:

复制代码
sensor.unsubscribeOnBodyState();

sensor.getOnBodyState

getOnBodyState(Object): void

获取设备佩戴状态。

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名 类型 必填 说明
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

success返回值:

参数名 类型 说明
value boolean 是否已佩戴。

示例:

复制代码
sensor.getOnBodyState({
  success: function(ret) {
    console.log('on body state: ' + ret.value);
  },
  fail: function(data, code) {
    console.log('Subscription failed. Code: ' + code + '; Data: ' + data);
  },
});

sensor.subscribeDeviceOrientation6+

subscribeDeviceOrientation(interval: string, success: (data: DeviceOrientationResponse), fail?: (data: string, code: number)): void

观察设备方向传感器数据变化。

针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效;针对同一个方法内,不支持多次调用。

系统能力:SystemCapability.Sensors.Sensor

参数:

参数名 类型 必填 说明
interval string 频率参数,设备方向传感器的回调函数执行频率。 默认为normal,可选值有: - game:极高的回调频率,20ms/次,适用于游戏。 - ui:较高的回调频率,60ms/次,适用于UI更新。 - normal:普通的回调频率,200ms/次,低功耗。
success Function 感应到设备方向传感器数据变化后的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
alpha number 当设备坐标 X/Y 和地球 X/Y 重合时,绕着 Z 轴转动的夹角为 alpha。
beta number 当设备坐标 Y/Z 和地球 Y/Z 重合时,绕着 X 轴转动的夹角为 beta。
gamma number 当设备 X/Z 和地球 X/Z 重合时,绕着 Y 轴转动的夹角为 gamma。

示例:

复制代码
sensor.subscribeDeviceOrientation({
  interval: 'normal',
  success: function(ret) {
    console.log('Alpha data: ' + ret.alpha);
    console.log('Beta data: ' + ret.beta);
    console.log('Gamma data: ' + ret.gamma);
  },
  fail: function(data, code) {
    console.error('Subscription failed. Code: ' + code + '; Data: ' + data);
  }
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeDeviceOrientation6+

unsubscribeDeviceOrientation(): void

取消订阅设备方向传感器数据。

系统能力:SystemCapability.Sensors.Sensor

示例:

复制代码
sensor.unsubscribeDeviceOrientation();

sensor.subscribeGyroscope6+

subscribeGyroscope(interval: string, success: (data: GyroscopeResponse), fail?: (data: string, code: number)): void

观察陀螺仪数据变化。

针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效;针对同一个方法内,不支持多次调用。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.GYROSCOPE,该权限为系统权限

参数:

参数名 类型 必填 说明
interval string 频率参数,陀螺仪的回调函数执行频率。 默认为normal,可选值有: - game:极高的回调频率,20ms/次,适用于游戏。 - ui:较高的回调频率,60ms/次,适用于UI更新。 - normal:普通的回调频率,200ms/次,低功耗。
success Function 感应到陀螺仪数据变化后的回调函数。
fail Function 接口调用失败的回调函数。

success返回值:

参数名 类型 说明
x number x轴的旋转角速度。
y number y轴的旋转角速度。
z number z轴的旋转角速度。

示例:

复制代码
sensor.subscribeGyroscope({
  interval: 'normal',
  success: function(ret) {
    console.log('X-axis data: ' + ret.x);
    console.log('Y-axis data: ' + ret.y);
    console.log('Z-axis data: ' + ret.z);
  },
  fail: function(data, code) {
    console.error('Subscription failed. Code: ' + code + '; data: ' + data);
  }
});

说明: 建议在页面销毁时,即onDestory回调中,取消数据订阅,避免不必要的性能开销。

sensor.unsubscribeGyroscope6+

unsubscribeGyroscope(): void

取消订阅陀螺仪数据。

系统能力:SystemCapability.Sensors.Sensor

需要权限:ohos.permission.GYROSCOPE,该权限为系统权限

示例:

复制代码
sensor.unsubscribeGyroscope();
相关推荐
遇到困难睡大觉哈哈8 小时前
HarmonyOS 公共事件机制介绍以及多进程之间的通信实现(9000字详解)
华为·harmonyos
马可奥勒留11 小时前
睡前幻想——基于透明化黄金锚定的超主权货币体系设计:一种解决政府货币滥用的奥地利学派方案(3)
程序员
幽蓝计划12 小时前
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
开发语言·harmonyos
伍哥的传说12 小时前
鸿蒙系统(HarmonyOS)应用开发之实现电子签名效果
开发语言·前端·华为·harmonyos·鸿蒙·鸿蒙系统
程序员的小马甲14 小时前
如何编写AI提示词
人工智能·程序员·产品经理
Georgewu14 小时前
【HarmonyOS】应用开发拖拽功能详解
harmonyos
塞尔维亚大汉14 小时前
鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程
源码·harmonyos
程序员鱼皮15 小时前
用 AI 制作超长视频,保姆级教程!
google·程序员·aigc
京东云开发者17 小时前
京点点AI试衣×主图A/B实验,时尚商家订单转化率提升80%+实战路径
程序员
kumalab17 小时前
HarmonyOS ArkTS卡片堆叠滑动组件实战与原理详解(含源码)
华为·harmonyos