HKHealthStore.isHealthDataAvailable 的目的是什么?

What is the purpose of HKHealthStore.isHealthDataAvailable?

为了设置 HealthKit 框架,Apple 推荐以下方式:

  1. 在 Xcode 中启用 HealthKit 功能。
  2. 通过调用isHealthDataAvailable方法检查HealthKit是否在设备上可用。
  3. 如果 HealthKit 已启用且可用,则实例化一个 HKHealthStore 对象。
  4. 请求用户授权以阅读和共享 HealthKit 数据。

我的问题与第 2 步有关。

HealthKit 在 8.0 及更高版本中可用,此方法当然具有相同的可用性。在 iPad 中,如果您使用 HealthKit 权利,则 HealthKit 不可用,iOS 甚至根本不允许您安装该应用程序。

这种方法在什么情况下可以returns false?

根据文档中的讨论,iPad 没有 HealthKit。在商店中,HealthKit-Apps 仍可用于 iPad,但无法使用该功能。

请注意,您可以在 iPad 上安装具有 HealthKit 框架的应用程序。你不能做的是安装一个需要 HealthKit 的应用程序。默认情况下,当您在 XCode 中启用 HealthKit 时,它会同时添加权利、框架和要求。但您可以在应用的 .plist 中调整要求。

现在为什么会有人想要在 iPad 应用程序中包含 HealthKit 框架,尤其是当它无法访问 HealthKit 数据存储时?我发现的主要原因是您可以使用 HealthKit 框架中的所有能量、距离和重量单位格式。

因此,isHealthDataAvailable 对于使用 HealthKit 但 HealthKit 商店并不总是可用的通用应用来说当然是理想的。