鸿蒙语言基础类库:【@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();
相关推荐
搞瓶可乐3 小时前
鸿蒙ArkUI实战之组件;Text组件,Image组件,Button组件,Span组件和TextInput组件的使用场景及使用方法
华为·harmonyos·鸿蒙系统·arkui·组件化开发·基础组件使用
九丘教育3 小时前
【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(15):NaiveExecutor
人工智能·华为·harmonyos
Java知识库6 小时前
Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
java·开发语言·jvm·面试·程序员
码流怪侠7 小时前
🚀 2025年 GitHub 暴涨 star 热门项目 🔥【持续更新】
程序员·github
搞瓶可乐7 小时前
鸿蒙ArkUI实战之TextArea组件、RichEditor组件、RichText组件、Search组件的使用
华为·harmonyos·arkui·搜索框·富文本组件·富文本输入框·鸿蒙原生api
孤寂码农_defector7 小时前
鸿蒙系统的 “成长烦恼“:生态突围与技术迭代的双重挑战
macos·华为·objective-c·cocoa·harmonyos
别说我什么都不会8 小时前
【仓颉三方库】 数据解析——TOML4CJ
harmonyos
鸿蒙布道师9 小时前
鸿蒙NEXT开发LRUCache缓存工具类(单例模式)(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
城中的雾11 小时前
HarmonyOS Next 编译之如何构建不同包名应用
harmonyos·arkts
别说我什么都不会11 小时前
【仓颉三方库】 数据解析—— jwt4cj
harmonyos