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 ?