requestSamsungHealthDataPermissions method

Future<List<String>> requestSamsungHealthDataPermissions({
  1. List<StatisticsType>? statisticTypes,
  2. List<MetricType>? metricTypes,
  3. List<ActivityConfig>? activityConfigs,
  4. List<SleepConfig>? sleepConfigs,
})

Initiates the permission request flow with Samsung Health Data. This function will check for existing permissions and, if necessary, prompt the user to grant access to the required permissions.

Returns a list of permission names that the user granted access to.

statisticTypes - Array of statistic types for which to request permissions. Optional.

metricTypes - Array of metric types for which to request permissions. Optional.

activityConfigs - Array of activity configuration objects for which to request permissions. Optional.

sleepConfigs - Array of sleep configuration objects for which to request permissions. Optional.

Implementation

Future<List<String>> requestSamsungHealthDataPermissions({
  List<StatisticsType>? statisticTypes,
  List<MetricType>? metricTypes,
  List<ActivityConfig>? activityConfigs,
  List<SleepConfig>? sleepConfigs,
}) async {
  if (!Platform.isAndroid) {
    throw Exception('requestSamsungHealthDataPermissions method is only available on Android');
  }

  await enableSamsungHealthDataIntegration();

  final result = await NativeSDKBridgeV3.requestPermissionsFromSamsungHealthData(
    connectionId: connectionId,
    statisticTypes: statisticTypes?.map((e) => e.toJson()).toList() ?? [],
    metricTypes: metricTypes?.map((e) => e.toJson()).toList() ?? [],
    activityConfigs: activityConfigs?.map((e) => jsonEncode(e.toJson())).toList() ?? [],
    sleepConfigs: sleepConfigs?.map((e) => jsonEncode(e.toJson())).toList() ?? [],
  );

  ExceptionHandler.checkException(result);

  return result;
}