HealthKit:保存在iPhone上的锻炼在活动应用

时间:2016-02-22 21:58:01

标签: ios iphone apple-watch health-kit

使用HealthKit,我正在保存

  1. 锻炼
  2. 相应的活性能量样本
  3. 相应的步行/跑步距离样本
  4. 我在苹果手表和iPhone上运行相同的代码。

    当我在iPhone上保存时

    • 我可以在iPhone App中选择锻炼和样品
    • 我可以在iPhone Health App中看到锻炼和样本
    • iPhone活动应用程序中的锻炼和样本(不好)

    当我在苹果手表上保存时

    • 我可以在iPhone App中选择锻炼和样品
    • 我可以在iPhone Health App中看到锻炼和样本
    • 我可以在iPhone活动应用中看到锻炼和样本

    当我在苹果手表上保存并在我的iPhone应用程序中删除

    • 我无法在iPhone App中选择锻炼和样本(好)
    • 我无法在iPhone Health App(好)
    • 中看到锻炼和样本
    • 直到watchOS 2.1 + iOS 9.2.1:我仍然可以在iPhone活动应用程序中看到锻炼和样本(非常糟糕)
    • 使用watchOS 2.2 beta 5 + iOS 9.3 beta 5测试:锻炼和样本从iPhone上的活动应用程序中删除(好)

    当我在苹果手表上保存并在Apple Watch App中删除

    • 使用watchOS 2.2 beta 5 + iOS 9.3 beta 5测试:一切都如预期:手表和iPhone上的任何提及的应用程序都不可见/可选(自iOS 9.3以来都很好)
    • 直到watchOS 2.1 + iOS 9.2.1:iPhone上没有删除锻炼和样本。 (直到iOS 9.2.1)

    问题

    我做错了什么,或者这是HealthKit和iPhone Activity App的工作方式吗?

    更具体的问题:

    • 如何在iPhone上保存锻炼和样本,以便锻炼和样本不仅可以在同一iPhone上的Health App中看到,还可以在同一iPhone上的Activity App中看到?
    • 如何删除我使用我的Watch App保存的iPhone上的锻炼和样本,这样锻炼和样本不仅会在同一iPhone上的Health App中删除,而且还会在活动应用程序中删除同样的iPhone?

    如果这不是我的错误,那么任何iOS应用都无法可靠地保存活动应用中显示的锻炼。 iOS应用程序可以将数据发送到手表应用程序,这是一个简单的部分。但我知道无法在后台处理手表上的这些数据。用户必须启动监视应用程序才能处理数据。

    测试是在硬件上进行的,而不是在模拟器上进行的。 iOS 9.2.1,watchOS 2.1

    我使用watchOS 2.2 beta 5 + iOS 9.3 beta 5添加了测试。我编辑了上面的结果。摘要:删除是固定的,在iPhone上保存仍然无效。

    借助iOS 9.3 / watchOS 2.2,Apple添加了HKActivitySummaryHKActivitySummaryQueryHKActivityRingView。简而言之:关于iPhone上的活动应用程序的所有内容也适用于HKActivitySummaryQuery。它们共享上述功能和错误。

1 个答案:

答案 0 :(得分:3)

这绝对是目前难以驾驭的东西!有三个不同的问题,单独的解释。

  1. 在iPhone上保存锻炼时

    • 保存在手机上的锻炼不是为了提供活动积分。它们必须源自Apple Watch。
    • 编辑:从iOS 10开始,如果用户拥有Apple Watch,手机上保存的锻炼将计入“活动”。
  2. 在Apple Watch上保存锻炼并在iPhone App中删除

    • 在iOS 9.2及更早版本中,删除手机上的样本并不会删除实际计算Activity的Apple Watch上的相同样本。这在iOS 9.3中已修复
    • 删除HKWorkout样本不足以删除与该锻炼相关联的样本。例如,如果您不希望它们存在,则需要明确删除相关的活动能量样本。也就是说,删除锻炼应该从活动环中删除它的贡献。如果它没有,那么这听起来像是一个值得单独提交的错误,因为您的原始错误可能被解释为在活动中从iPhone计算的请求。