@system.sensor (传感器)
sensor模块提供订阅传感器数据基本能力,主要包含查询传感器的列表、订阅/取消传感器的数据、执行控制命令等。
根据传感器的用途,可以将传感器分为六大类:运动类传感器、环境类传感器、方向类传感器、光线类传感器、健康类传感器、其他类传感器(如霍尔传感器),每一大类传感器包含不同类型的传感器,某种类型的传感器可能是单一的物理传感器,也可能是由多个物理传感器复合而成。
说明:
- 从API Version 8开始,该接口不再维护,推荐使用新接口
@ohos.sensor
。- 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
- 该功能使用需要对应硬件支持,仅支持真机调试。
导入模块
import sensor from '@system.sensor';
sensor.subscribeAccelerometer
subscribeAccelerometer(options: subscribeAccelerometerOptions): void
观察加速度数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.ACCELEROMETER,该权限为系统权限
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | subscribeAccelerometerOptions | 是 | 监听加速度传感器数据的回调函数的执行频率。 |
示例:
import sensor from '@system.sensor';
import { AccelerometerResponse, subscribeAccelerometerOptions } from '@system.sensor';
let accelerometerOptions: subscribeAccelerometerOptions = {
interval: 'normal',
success: (ret: AccelerometerResponse) => {
console.info('Succeeded in subscribing. X-axis data: ' + ret.x);
console.info('Succeeded in subscribing. Y-axis data: ' + ret.y);
console.info('Succeeded in subscribing. Z-axis data: ' + ret.z);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeAccelerometer(accelerometerOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeAccelerometer
unsubscribeAccelerometer(): void
取消订阅加速度数据。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.ACCELEROMETER,该权限为系统权限
示例:
sensor.unsubscribeAccelerometer();
sensor.subscribeCompass
subscribeCompass(options: SubscribeCompassOptions): void
订阅罗盘数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeCompassOptions | 是 | 当罗盘传感器数据发生变化时调用。 |
示例:
import sensor from '@system.sensor';
import { CompassResponse, SubscribeCompassOptions } from '@system.sensor';
let subscribeCompassOptions: SubscribeCompassOptions = {
success: (ret: CompassResponse) => {
console.info('Succeeded in subscribing. Get data direction:' + ret.direction);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeCompass(subscribeCompassOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeCompass
unsubscribeCompass(): void
取消订阅罗盘。
系统能力:SystemCapability.Sensors.Sensor.Lite
示例:
sensor.unsubscribeCompass();
sensor.subscribeProximity
subscribeProximity(options: SubscribeProximityOptions): void
订阅距离感应数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeProximityOptions | 是 | 当距离传感器数据发生变化时调用。 |
示例:
import sensor from '@system.sensor';
import { ProximityResponse, SubscribeProximityOptions } from '@system.sensor';
let subscribeProximityOptions: SubscribeProximityOptions = {
success: (ret: ProximityResponse) => {
console.info('Succeeded in subscribing. Get data distance:' + ret.distance);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeProximity(subscribeProximityOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeProximity
unsubscribeProximity(): void
取消订阅距离感应。
系统能力:SystemCapability.Sensors.Sensor.Lite
示例:
sensor.unsubscribeProximity();
sensor.subscribeLight
subscribeLight(options: SubscribeLightOptions): void
订阅环境光线感应数据变化。再次调用时,会覆盖前一次调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeLightOptions | 是 | 当环境光传感器数据发生变化时调用。 |
示例:
import sensor from '@system.sensor';
import { LightResponse, SubscribeLightOptions } from '@system.sensor';
let subscribeLightOptions: SubscribeLightOptions = {
success: (ret: LightResponse) => {
console.info('Succeeded in subscribing. Get data intensity:' + ret.intensity);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeLight(subscribeLightOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeLight
unsubscribeLight(): void
取消订阅环境光线感应。
系统能力:SystemCapability.Sensors.Sensor.Lite
示例:
sensor.unsubscribeLight();
sensor.subscribeStepCounter
subscribeStepCounter(options: SubscribeStepCounterOptions): void
订阅计步传感器数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.ACTIVITY_MOTION
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeStepCounterOptions | 是 | 当步进计数器传感器数据发生变化时调用。 |
示例:
import sensor from '@system.sensor';
import { StepCounterResponse, SubscribeStepCounterOptions } from '@system.sensor';
let subscribeStepCounterOptions: SubscribeStepCounterOptions = {
success: (ret: StepCounterResponse) => {
console.info('Succeeded in subscribing. Get step value:' + ret.steps);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeStepCounter(subscribeStepCounterOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeStepCounter
unsubscribeStepCounter(): void
取消订阅计步传感器。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.ACTIVITY_MOTION
示例:
sensor.unsubscribeStepCounter();
sensor.subscribeBarometer
subscribeBarometer(options: SubscribeBarometerOptions): void
订阅气压计传感器数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeBarometerOptions | 是 | 当气压计传感器数据发生变化时调用。 |
示例:
import sensor from '@system.sensor';
import { BarometerResponse, SubscribeBarometerOptions } from '@system.sensor';
let subscribeBarometerOptions: SubscribeBarometerOptions = {
success: (ret: BarometerResponse) => {
console.info('Succeeded in subscribing. Get data value:' + ret.pressure);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeBarometer(subscribeBarometerOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeBarometer
unsubscribeBarometer(): void
取消订阅气压计传感器。
系统能力:SystemCapability.Sensors.Sensor.Lite
示例:
sensor.unsubscribeBarometer();
sensor.subscribeHeartRate
subscribeHeartRate(options: SubscribeHeartRateOptions): void
订阅心率传感器数据变化。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.READ_HEALTH_DATA
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeHeartRateOptions | 是 | 当心率传感器数据发生变化时调用。 |
示例:
import sensor from '@system.sensor';
import { HeartRateResponse, SubscribeHeartRateOptions } from '@system.sensor';
let subscribeHeartRateOptions: SubscribeHeartRateOptions = {
success: (ret: HeartRateResponse) => {
console.info('Succeeded in subscribing. Get heartrate value:' + ret.heartRate);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeHeartRate(subscribeHeartRateOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeHeartRate
unsubscribeHeartRate(): void
取消订阅心率传感器。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.READ_HEALTH_DATA
示例:
sensor.unsubscribeHeartRate();
sensor.subscribeOnBodyState
subscribeOnBodyState(options: SubscribeOnBodyStateOptions): void
订阅设备佩戴状态。针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor.Lite
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeOnBodyStateOptions | 是 | 当穿着状态改变时调用。 |
示例:
import sensor from '@system.sensor';
import { OnBodyStateResponse, SubscribeOnBodyStateOptions } from '@system.sensor';
let subscribeOnBodyStateOptions: SubscribeOnBodyStateOptions = {
success: (ret: OnBodyStateResponse) => {
console.info('Succeeded in subscribing. Get on-body state value:' + ret.value);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.subscribeOnBodyState(subscribeOnBodyStateOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeOnBodyState
unsubscribeOnBodyState(): void
取消订阅设备佩戴状态。
系统能力:SystemCapability.Sensors.Sensor.Lite
示例:
sensor.unsubscribeOnBodyState();
sensor.getOnBodyState
getOnBodyState(options: GetOnBodyStateOptions): void
获取设备佩戴状态。
系统能力:SystemCapability.Sensors.Sensor.Lite
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | GetOnBodyStateOptions | 是 | 获取传感器磨损状态时调用。 |
示例:
import sensor from '@system.sensor';
import { OnBodyStateResponse, GetOnBodyStateOptions } from '@system.sensor';
let getOnBodyStateOptions: GetOnBodyStateOptions = {
success: (ret: OnBodyStateResponse) => {
console.info('Succeeded in subscribing. On body state: ' + ret.value);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
},
};
sensor.getOnBodyState(getOnBodyStateOptions);
sensor.subscribeDeviceOrientation6+
subscribeDeviceOrientation(options: SubscribeDeviceOrientationOptions): void
观察设备方向传感器数据变化。
针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效;针对同一个方法内,不支持多次调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeDeviceOrientationOptions | 是 | 用于监听设备方向传感器数据的回调函数的执行频率。 |
示例:
import sensor from '@system.sensor';
import { DeviceOrientationResponse, SubscribeDeviceOrientationOptions } from '@system.sensor';
let subscribeDeviceOrientationOptions: SubscribeDeviceOrientationOptions = {
interval: 'normal',
success: (ret: DeviceOrientationResponse) => {
console.info('Succeeded in subscribing. Alpha data: ' + ret.alpha);
console.info('Succeeded in subscribing. Beta data: ' + ret.beta);
console.info('Succeeded in subscribing. Gamma data: ' + ret.gamma);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
}
};
sensor.subscribeDeviceOrientation(subscribeDeviceOrientationOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeDeviceOrientation6+
unsubscribeDeviceOrientation(): void
取消订阅设备方向传感器数据。
系统能力:SystemCapability.Sensors.Sensor.Lite
示例:
sensor.unsubscribeDeviceOrientation();
sensor.subscribeGyroscope6+
subscribeGyroscope(options: SubscribeGyroscopeOptions): void
观察陀螺仪传感器数据变化。
针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效;针对同一个方法内,不支持多次调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.GYROSCOPE,该权限为系统权限
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | SubscribeGyroscopeOptions | 是 | 用于侦听陀螺仪传感器数据的回调函数的执行频率。 |
示例:
import sensor from '@system.sensor';
import { GyroscopeResponse, SubscribeGyroscopeOptions } from '@system.sensor';
let subscribeGyroscopeOptions: SubscribeGyroscopeOptions = {
interval: 'normal',
success: (ret: GyroscopeResponse) => {
console.info('Succeeded in subscribing. X-axis data: ' + ret.x);
console.info('Succeeded in subscribing. Y-axis data: ' + ret.y);
console.info('Succeeded in subscribing. Z-axis data: ' + ret.z);
},
fail: (data: string, code: number) => {
console.error(`Failed to subscription. Code: ${code}, data: ${data}`);
}
};
sensor.subscribeGyroscope(subscribeGyroscopeOptions);
说明: 建议在页面销毁时,即onDestroy回调中,取消数据订阅,避免不必要的性能开销。
sensor.unsubscribeGyroscope6+
unsubscribeGyroscope(): void
取消订阅陀螺仪传感器数据。
系统能力:SystemCapability.Sensors.Sensor.Lite
需要权限:ohos.permission.GYROSCOPE,该权限为系统权限
示例:
sensor.unsubscribeGyroscope();
subscribeAccelerometerOptions
用于监听加速度传感器数据的回调函数的执行频率。
需要权限:ohos.permission.ACCELEROMETER
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
interval | string | 是 | 频率参数,加速度的回调函数执行频率。 默认为normal,可选值有: - game:极高的回调频率,20ms/次,适用于游戏。 - ui:较高的回调频率,60ms/次,适用于UI更新。 - normal:普通的回调频率,200ms/次,低功耗。 |
success | AccelerometerResponse | 是 | 感应到加速度数据变化后的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
AccelerometerResponse
感应到加速度数据变化后的回调函数。
需要权限:ohos.permission.ACCELEROMETER
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
x | number | 是 | x轴的加速度。 |
y | number | 是 | y轴的加速度。 |
z | number | 是 | z轴的加速度。 |
SubscribeCompassOptions
当罗盘传感器数据发生变化时调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | CompassResponse | 是 | 罗盘数据改变后触发的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
CompassResponse
罗盘数据改变后触发的回调函数。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
direction | number | 是 | 设备面对的方向度数。 |
SubscribeProximityOptions
当距离传感器数据发生变化时调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | ProximityResponse | 是 | 距离感应数据改变后调用的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
ProximityResponse
距离感应数据改变后调用的回调函数。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
distance | number | 是 | 可见物体相对于设备显示屏的接近或远离状态。 |
SubscribeLightOptions
当环境光传感器数据发生变化时调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | LightResponse | 是 | 光线感应数据改变后的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
LightResponse
光线感应数据改变后的回调函数。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
intensity | number | 是 | 光线强度,单位为lux。 |
SubscribeStepCounterOptions
当步进计数器传感器数据发生变化时调用。
需要权限:ohos.permission.ACTIVITY_MOTION
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | StepCounterResponse | 是 | 计步传感器数据改变后的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
StepCounterResponse
计步传感器数据改变后的回调函数。
需要权限:ohos.permission.ACTIVITY_MOTION
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
steps | number | 是 | 计步传感器重启后累计记录的步数。 |
SubscribeBarometerOptions
当气压计传感器数据发生变化时调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | BarometerResponse | 是 | 气压计传感器数据改变后的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
BarometerResponse
气压计传感器数据改变后的回调函数。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
pressure | number | 是 | 气压值,单位:帕斯卡。 |
SubscribeHeartRateOptions
当心率传感器数据发生变化时调用。
需要权限:ohos.permission.READ_HEALTH_DATA
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | HeartRateResponse | 是 | 心率传感器数据改变后的回调函数,默认频率5s/次。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
HeartRateResponse
心率传感器数据改变后的回调函数,默认频率5s/次。
需要权限:ohos.permission.READ_HEALTH_DATA
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
heartRate | number | 是 | 心率值。 |
SubscribeOnBodyStateOptions
当穿着状态改变时调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | OnBodyStateResponse | 是 | 穿戴状态改变后的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
OnBodyStateResponse
传感器是否磨损。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 是否已佩戴。 |
GetOnBodyStateOptions
获取传感器磨损状态时调用。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
success | OnBodyStateResponse | 是 | 接口调用成功的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
complete | Function | 否 | 接口调用结束的回调函数。 |
SubscribeDeviceOrientationOptions6+
用于监听设备方向传感器数据的回调函数的执行频率。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
interval | string | 是 | 频率参数,设备方向传感器的回调函数执行频率。 默认为normal,可选值有: - game:极高的回调频率,20ms/次,适用于游戏。 - ui:较高的回调频率,60ms/次,适用于UI更新。 - normal:普通的回调频率,200ms/次,低功耗。 |
success | DeviceOrientationResponse | 是 | 感应到设备方向传感器数据变化后的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
DeviceOrientationResponse6+
感应到设备方向传感器数据变化后的回调函数。
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
alpha | number | 是 | 当设备坐标 X/Y 和地球 X/Y 重合时,绕着 Z 轴转动的夹角为 alpha。 |
beta | number | 是 | 当设备坐标 Y/Z 和地球 Y/Z 重合时,绕着 X 轴转动的夹角为 beta。 |
gamma | number | 是 | 当设备 X/Z 和地球 X/Z 重合时,绕着 Y 轴转动的夹角为 gamma。 |
SubscribeGyroscopeOptions6+
用于侦听陀螺仪传感器数据的回调函数的执行频率。
需要权限:ohos.permission.GYROSCOPE
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
interval | string | 是 | 频率参数,陀螺仪的回调函数执行频率。 默认为normal,可选值有: - game:极高的回调频率,20ms/次,适用于游戏。 - ui:较高的回调频率,60ms/次,适用于UI更新。 - normal:普通的回调频率,200ms/次,低功耗。 |
success | GyroscopeResponse | 是 | 感应到陀螺仪数据变化后的回调函数。 |
fail | Function | 否 | 接口调用失败的回调函数。 |
GyroscopeResponse6+
感应到陀螺仪传感器数据变化后的回调函数。
需要权限:ohos.permission.GYROSCOPE
系统能力:SystemCapability.Sensors.Sensor.Lite
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
x | number | 是 | x轴的旋转角速度。 |
y | number | 是 | y轴的旋转角速度。 |
z | number | 是 | z轴的旋转角速度。 |