requestPermissions method

  1. @override
Future<List<HealthConnectHealthMetric>> requestPermissions(
  1. List<HealthConnectHealthMetric> metrics
)
override

Requests permissions for the specified health metrics. Returns a list of metrics that were granted permission.

Implementation

@override
Future<List<HealthConnectHealthMetric>> requestPermissions(
  List<HealthConnectHealthMetric> metrics,
) async {
  List<String> definitions = [];
  for (final metric in metrics) {
    definitions.add(metric.definition);
  }

  final List<String>? response = await methodChannel.invokeListMethod(
    "$healthConnectPrefix/$requestPermissionsSuffix",
    {"types": definitions},
  );

  if (response == null) {
    throw Exception("[HealthConnect] requestPermissions returned null");
  }

  List<HealthConnectHealthMetric> result = [];
  for (final element in response) {
    final permitted = HealthConnectHealthMetric.fromString(element);
    result.add(permitted);
  }

  return result;
}