作者:坚果,公众号:”大前端之旅“,哔哩哔哩,OpenHarmony布道师,CSDN博客专家,InfoQ签约作者,OpenHarmony校源行开源大使,51CTO博客专家博主,阿里云博客专家。
要使用传感器数据,首先需要导入传感器模块
import sensor from '@ohos.sensor';
这个接口数据还是比较敏感的,所以需要添加权限
这个时候就需要在config.JSON或者module.json5中去配置
FA
"reqPermissions": [
{
"name": "ohos.permission.ACCELEROMETER"
}
]
Stage
"requestPermissions": [
{
"name": "ohos.permission.ACCELEROMETER"
}
]
接下来我们就来看一下传感器类型。
表示要订阅或取消订阅的传感器类型。
系统能力:以下各项对应的系统能力均为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 | 未校准加速度计传感器。 |
传感器数据的时间戳。
系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.Sensor
名称 | 参数类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
timestamp | number | 是 | 是 | 传感器数据上报的时间戳。 |
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。 |
示例:
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%')
}
}
加速度传感器数据,继承于Response。
系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.Sensor
名称 | 参数类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
x | number | 是 | 是 | 施加在设备x轴的加速度,单位 : m/s2。 |
y | number | 是 | 是 | 施加在设备y轴的加速度,单位 : m/s2。 |
z | number | 是 | 是 | 施加在设备z轴的加速度,单位 : m/s2。 |
on(type: SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback: Callback, options?: Options): void
监听计步检测传感器的数据变化。如果多次调用该接口,仅最后一次调用生效。
需要权限:ohos.permission.ACTIVITY_MOTION
系统能力:SystemCapability.Sensors.Sensor
on(type:SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE,callback:Callback, options?: Options): void
监听环境温度传感器的数据变化。如果多次调用该接口,仅最后一次调用生效。
系统能力:SystemCapability.Sensors.Sensor
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%')
}
}