sensor (传感器) 设置传感器上报频率失败。预期设置上报频率时间为 10s 上报一次,但无法生效,触发频率很高。所有传感器都是一样问题。复现代码如下:
// 传感器数据
@State sensorResponse: sensor.AccelerometerResponse | null = null
aboutToAppear(): void {
this.listenSensor()
}
aboutToDisappear(): void {
this.removeSensor()
}
// 监听传感器
listenSensor() {
try {
sensor.on(sensor.SensorId.ACCELEROMETER, (data) => {
this.sensorResponse = data
}, { interval: 10 * 1e9 }) // 设置时间为 10s 上报一次,但无法生效,触发频率很高
} catch (error) {
AlertDialog.show({ message: JSON.stringify(error) })
}
}
// 停止监听
removeSensor() {
try {
sensor.off(sensor.SensorId.ACCELEROMETER)
} catch (error) {
AlertDialog.show({ message: JSON.stringify(error) })
}
}
// 打印测试
Text('传感器数据:' + JSON.stringify(this.sensorResponse))
用户调用on接口订阅传感器数据之前,要先获取设备支持的数据上报频率范围,可以使用getSensorList或者getSingleSensor查询传感器信息获得。如果设置的频率范围超过设备支持的频率,那么会以支持的频率上报。
参考文档如下:
sensor.getSensorList9+;
Sensor9+。