readLatestData method

Future<Map<DataType, SamplePoint>> readLatestData(
  1. List<DataType> types,
  2. String packageName
)

Reads the latest data points of the specified data type.

Currently, only the following data types can be read:

Height: DataType.DT_INSTANTANEOUS_HEIGHT

Weight: DataType.DT_INSTANTANEOUS_BODY_WEIGHT

Heart rate: DataType.DT_INSTANTANEOUS_HEART_RATE

Stress: DataType.DT_INSTANTANEOUS_STRESS

Blood pressure: HealthDataTypes.DT_INSTANTANEOUS_BLOOD_PRESSURE

Blood glucose: HealthDataTypes.DT_INSTANTANEOUS_BLOOD_GLUCOSE

Blood oxygen: HealthDataTypes.DT_INSTANTANEOUS_SPO2

Implementation

Future<Map<DataType, SamplePoint>> readLatestData(
  List<DataType> types,
  String packageName,
) async {
  List<Map<String, dynamic>> list = <Map<String, dynamic>>[];
  for (DataType type in types) {
    list.add(type.toMap());
  }

  final List<dynamic>? result = await _channel.invokeMethod<List<dynamic>?>(
    'readLatestData',
    <String, dynamic>{
      'types': list,
      'packageName': packageName,
    },
  );

  Map<DataType, SamplePoint> resultMap = <DataType, SamplePoint>{};
  if (result != null) {
    for (dynamic map in result) {
      final DataType dataType = DataType.fromMap(map['dataType']);
      final SamplePoint samplePoint = SamplePoint.fromMap(map);
      resultMap[dataType] = samplePoint;
    }
  }
  return resultMap;
}