长时任务中不支持记步,但是根据应用的场景,可以申请定位导航的长时任务,在定位坐标回调里面,用单次读取接口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}`); } }
长时任务中不支持记步,但是根据应用的场景,可以申请定位导航的长时任务,在定位坐标回调里面,用单次读取接口sensor.once()去读取记步数据。
部分代码如下