iOS 获取组合多个设备的 healthkit 数据

iOS fetch healthkit data combining multiple devices

我有一个从 iOS 收集 healthkit 数据的应用程序。 它像这样将数据发送到我的应用程序:

 {
      "header": {
        "id": "18018B64-850A-4F3A-9D21-4FF0C99762D6",
        "creation_date_time": "2020-01-15T14:15:00.000+01:00",
        "schema_id": {
          "namespace": "omh",
          "name": "step-count",
          "version": "1.0"
        }
      },
      "source": {
        "operating_system_version": "13.3.0",
        "bundle_identifier": "com.garmin.connect.mobile",
        "product_type": "iPhone10,4",
        "name": "Connect",
        "version": "20"
      },
      "device": null,
      "body": {
        "step_count": 888,
        "effective_time_frame": {
          "time_interval": {
            "start_date_time": "2020-01-15T14:15:00.000+01:00",
            "end_date_time": "2020-01-15T14:29:59.000+01:00"
          }
        }
      }
    },

我想要单独的数据,因为我的应用显示了它自己的聚合(日、月、今天等),我想在服务器端按照我的意愿执行此操作,所以我无权访问用户phone。用户 phone 向服务器发送新的测量值,因为它们在后台可用。

但是,问题是我还收到来自 iPhone 自身或其他收集步数的设备的测量值。

我可以过滤一台设备的传入数据,但这意味着如果我们关闭手表,我们就会丢失数据。 Healthkit 会收集 iPhone 数据,因此在 Health 应用程序中您会看到步数。

我其实很想看看 healthkit 应用程序中的数据,所以我会不断更新。

简短的问题:我不想考虑设备,我只想要它变化时的 HK 值。这可能吗?

在 iOS 上重现 Health 中显示的聚合的方法是使用 HKStatisticsCollectionQuery 而不是上传单个样本,然后尝试自己计算图表的值。您不太可能能够重现 HKStatisticsCollectionQuery 用于组合重叠数据的逻辑,因此直接使用查询要简单得多。