health_kit_api.dart 2.87 KB
import 'package:pigeon/pigeon.dart';


class HealthAuthorization {
  /// -1: AppleHealth不可用, 0: 需要请求授权, 1: 已被授权且能获取到部分数据, 2: 已被拒绝或者没有数据
  final int status;
  final bool hasData;

  HealthAuthorization({required this.status, required this.hasData});
}

@ConfigurePigeon(
  PigeonOptions(
    dartOut: 'lib/pigeon/health_kit_api.g.dart',
    dartPackageName: 'doublefeel_flutter',
    dartOptions: DartOptions(),
    kotlinOut:
        'android/app/src/main/kotlin/com/doublefeel/app/pigeon/HealthKitApi.kt',
    kotlinOptions: KotlinOptions(
      package: 'com.doublefeel.app.pigeon',
    ),
    swiftOut: 'ios/Runner/Pigeon/HealthKitApi.swift',
    swiftOptions: SwiftOptions(),
    arkTSOut: 'ohos/entry/src/main/ets/pigeon/HealthKitApi.ets',
    copyrightHeader: 'pigeon/copyright.txt',
  ),
)
@HostApi()
abstract class HealthKitHostApi {
  // @optional

  @async
  String getHealthServerAuthUrl();

  bool cancelHealthAppAuthorization();


// @required

  /// Opens Huawei Health client authorization UI. Returns whether user granted.
  @async
  HealthAuthorization checkHealthAppAuthorization();

  @async
  bool requestHealthClientAuthorization();

/*

  ///测试使用- 导出本地存储的observer日志
  @async
  bool exportHealthObserverRecord();

 /// Runs native health read and server upload pipeline.
  @async
  HealthUploadResult performHealthUpload();

  @async
  List<HealthUploadDataPoint> fetchHrvData(int startTime, int endTime);

  @async
  List<HealthUploadDataPoint> fetchHeartRateData(int startTime, int endTime);

  @async
  List<HealthUploadDataPoint> fetchWalkingHeartRateData(
    int startTime,
    int endTime,
  );

  @async
  List<HealthUploadDataPoint> fetchRestingHeartRateData(
    int startTime,
    int endTime,
  );

  @async
  List<HealthUploadDataPoint> fetchSleepingHeartRateData(
    int startTime,
    int endTime,
  );

  @async
  List<HealthUploadDataPoint> fetchOxygenSaturationData(
    int startTime,
    int endTime,
  );

  @async
  List<HealthUploadDataPoint> fetchActiveEnergyData(
    int startTime,
    int endTime,
  );

  @async
  List<HealthUploadDataPoint> fetchExerciseData(int startTime, int endTime);

  @async
  List<HealthUploadDataPoint> fetchStandData(int startTime, int endTime);

  @async
  List<HealthUploadDataPoint> fetchStepCountData(int startTime, int endTime);

  @async
  List<HealthSleepUploadDataPoint> fetchSleepData(int startTime, int endTime);

  @async
  List<HealthUploadDataPoint> fetchSleepingWristTemperatureData(
    int startTime,
    int endTime,
  );

  @async
  List<HealthUploadDataPoint> fetchRespiratoryRateData(
    int startTime,
    int endTime,
  );

  @async
  List<HealthUploadDataPoint> fetchIrregularHeartRhythmData(
    int startTime,
    int endTime,
  );

  @async
  HealthActivityTargetData? fetchActivityTargetData(
    int startTime,
    int endTime,
  );
  */
}