HarmonyOS 计步器传感器后台不工作?

灭屏后,无数据返回

PEDOMETER\_DETECTION 传感器灭屏后可以工作,灭屏后不工作PEDOMETER

阅读 514
1 个回答

长时任务中不支持记步,但是根据应用的场景,可以申请定位导航的长时任务,在定位坐标回调里面,用单次读取接口sensor.once()去读取记步数据。

部分代码如下

startGeoLocation() {
  // 申请通知
  notificationManager.requestEnableNotification().then(() => {
    let requestInfo: geoLocationManager.LocationRequest = {
      'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX,
      'scenario': geoLocationManager.LocationRequestScenario.UNSET,
      'timeInterval': 0,
      'distanceInterval': 0,
      'maxAccuracy': 0
    };
    let locationChange = (location: geoLocationManager.Location): void => {
      console.log('locationChanger: data: ' + JSON.stringify(location));
      this.once()
    };
    try {
      geoLocationManager.on('locationChange', requestInfo, locationChange);
    } catch (err) {
      console.error('errCode:' + (err as BusinessError.BusinessError).code + ',errMessage:' + (err as BusinessError.BusinessError).message);
    }
  })
}

once() {
  try {
    sensor.once(sensor.SensorId.PEDOMETER, (data: sensor.PedometerResponse) => {
      console.info('Succeeded in invoking once. Step count: ' + data.steps);
    });
  } catch (error) {
    let e: BusinessError.BusinessError = error as BusinessError.BusinessError;
    console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进