鸿蒙语言基础类库:【@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();
相关推荐
王码码20351 小时前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
坚果派·白晓明2 小时前
在鸿蒙设备上快速验证由lycium工具快速交叉编译的C/C++三方库
c语言·c++·harmonyos·鸿蒙·编程语言·openharmony·三方库
lbb 小魔仙3 小时前
【HarmonyOS实战】OpenHarmony + RN:自定义 useFormik 表单处理
react native·harmonyos
ujainu3 小时前
Flutter + OpenHarmony 实现经典打砖块游戏开发实战—— 物理反弹、碰撞检测与关卡系统
flutter·游戏·openharmony·arkanoid·breakout
果粒蹬i3 小时前
【HarmonyOS】DAY7:鸿蒙跨平台 Tab 开发问题与列表操作难点深度复盘
华为·harmonyos
王码码20353 小时前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
熊猫钓鱼>_>4 小时前
移动端开发技术选型报告:三足鼎立时代的开发者指南(2026年2月)
android·人工智能·ios·app·鸿蒙·cpu·移动端
ITUnicorn4 小时前
【HarmonyOS6】ArkTS 自定义组件封装实战:动画水杯组件
华为·harmonyos·arkts·鸿蒙·harmonyos6
晚霞的不甘4 小时前
Flutter for OpenHarmony 构建简洁高效的待办事项应用 实战解析
flutter·ui·前端框架·交互·鸿蒙
全栈探索者4 小时前
@Component + struct = 你的新函数组件——React 开发者的鸿蒙入门指南(第 2 期)
react·harmonyos·arkts·前端开发·deveco studio·鸿蒙next·函数组件