krokyze / FitKit

Flutter plugin for reading health and fitness data. Wraps HealthKit on iOS and GoogleFit on Android.
BSD 2-Clause "Simplified" License
98 stars 72 forks source link

How can I add exercise minutes manually in the Health app? #73

Open erguncengiz opened 3 years ago

erguncengiz commented 3 years ago

I paired my iPhone simulator with Apple Watch simulator. I want to read exercise minutes with this library but how can i do that?

DinithHerath commented 3 years ago

Fortunately, I have modified the plugin to do that 😁

Use this in the pubspec.yaml as fitkit plugin.

fit_kit:
  git:
    url: git://github.com/dinithherath/FitKit.git

And in your code to get the exercise_minutes use this snippet.

if (!permissions) {
  log.d('RequestPermissions: Denied');
} else {
  try {
    final now = DateTime.now();
    FitDataStatistics resultAllSteps;
    FitDataStatistics resultAllExercise;
    try {
      resultAllSteps = await FitKit.readStatistics(
        DataType.STEP_COUNT,
        dateFrom: DateTime(now.year, now.month, now.day),
        dateTo: now,
      );
    } catch (e) {
      resultAllSteps = null;
    }
    try {
      resultAllExercise = await FitKit.readStatistics(
        DataType.EXERCISE_TIME,
        dateFrom: DateTime(now.year, now.month, now.day),
        dateTo: now,
      );
    } catch (e) {
      resultAllExercise = null;
    }
  } on UnsupportedException catch (e) {
    print(e.toString());
  }
}

This reads data from the health kit using the iOS cumulative sum method which will eliminate duplicates from your phone and apple watch.

If you get the work done please star my repo of Fitkit and follow me on github ❤ Thanks.