Package: Flutter health 6.0.0 Device: Iphone 12 pro iOS version: 16.5

HealthDataType.ACTIVE_ENERGY_BURNED and HealthDataType.DISTANCE_WALKING_RUNNING reads a wrong numbers that Apple health, it returns a higher value.

Below is the code I used to query these two types

final types = [HealthDataType.ACTIVE_ENERGY_BURNED, HealthDataType.DISTANCE_WALKING_RUNNING];

var now = DateTime.now();
var midnight = DateTime(now.year, now.month, now.day);

var healthDataList = await health.getHealthDataFromTypes(
  midnight,
  now,
  types,
);
final cleanData = HealthFactory.removeDuplicates(healthDataList);

double energy = 0;
double distance = 0;

for (final data in cleanData) {
  if (data.type == HealthDataType.ACTIVE_ENERGY_BURNED) {
    energy += double.parse(data.value.toJson()['numericValue']);
  } else if (data.type == HealthDataType.DISTANCE_WALKING_RUNNING) {
    distance += double.parse(data.value.toJson()['numericValue']);
  }
}

Works fine on Android, what am I doing wrong ?

My app

Apple health active energy

Apple health distance

0

There are 0 best solutions below