HarmonyOS 传感器回调时间间隔问题

使用传感器 API 获取气压时,传入的回调间隔是 1s(1000 * 1000 * 1000),但实际回调间隔远小于 1s,大概是 0.1s

完整代码如下:

import { sensor } from '@kit.SensorServiceKit';
import Logger, { TAG_OT } from '../../manager/Logger';
import { SECOND_IN_NANOS, SECOND_IN_MILLIS } from '../../utils/DateUtils';

/**
 * 通过传感器获取气压
 */
class PressureSensorManager {

  lastPressure = 0
  lastPressureTimestamp = 0

  /**
   * 开启气压监听
   */
  startSensor(): Promise<void> {
    Logger.i(TAG_OT, `PressureManager: start sensor`)
    return new Promise((resolve, reject) => {
      try {
        sensor.on(
          sensor.SensorId.BAROMETER,
          (response: sensor.BarometerResponse) => {
            this.onPressorChange(response)
          },
          { interval: TIME_INTERVAL }
        )
        resolve()
      } catch (error) {
        reject()
        Logger.e(TAG_OT, `start pressure sensor error: ${JSON.stringify(error)}`)
      }
    })
  }

  /**
   * 关闭气压监听
   */
  stopSensor() {
    sensor.off(sensor.SensorId.BAROMETER)
    Logger.i(TAG_OT, `stop pressure sensor`)
  }

  private onPressorChange(response: sensor.BarometerResponse) {
    this.lastPressure = response.pressure
    this.lastPressureTimestamp = Date.now()

    Logger.d(TAG_OT, `on pressure change. pressure: ${response.pressure}`)
  }
}

// 传感器回调间隔,纳秒
const TIME_INTERVAL = 1000 * 1000 * 1000

export default new PressureSensorManager()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
HarmonyOS
2024-12-27 17:02:37
1028浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

每个传感器的回调间隔是有范围的,首先用某个传感器要用hidumper -s 3601 -a -l命令查询一下对应传感器的回调间隔范围,如果小于最小值,会默认给个最小值;如果大于最大值,会默认给个最大值

分享
微博
QQ
微信
回复
2024-12-27 19:50:44
相关问题
重力传感器相关问题咨询
1224浏览 • 1回复 待解决
HarmonyOS 计步传感器相关问题咨询?
925浏览 • 1回复 待解决
HarmonyOS 传感器判断屏幕方向
814浏览 • 1回复 待解决
Sensor 步数传感器后台情况
1425浏览 • 1回复 待解决
HarmonyOS 计步器传感器后台不工作
790浏览 • 1回复 待解决
HarmonyOS 如何通过传感器获取设备方向
1021浏览 • 1回复 待解决
如何保证振弦传感器的测量精度?
4177浏览 • 0回复 待解决
获取加速度传感器的方法
1290浏览 • 1回复 待解决
什么是智能振弦传感器的电子标签?
4054浏览 • 0回复 待解决