问题标签 [hkhealthstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1583 浏览

ios - 如何通过 healthkit 使用 Apple Watch 心率更新 iOS 应用程序?(HealthKit 同步)

我的手表应用能够轻松地从 HKAnchoredObjectQuery 中 HealthKit 的新 updateHandler 读取新的心率数据。

麻烦的是,手机应用观察到的健康商店似乎与手表不同步。

暂停应用程序并恢复它有时会提示 HealthKit 在手表的健康商店和手机的商店之间进行(似乎是)同步。我不知道为什么会这样。

我需要的是某种方式来不断地在设备之间重新同步健康存储。如果我只是将最新的心率数据从手表发送到带有 WatchConnectivity 的手机应用程序,那么我确实可以获得我需要显示的数据,但是如果我将这些数据提交到商店,我会在手表的时候得到重复的数据存储同步。

这是一个主要问题,因为它破坏了 HealthKit 作为读取和写入健康数据的可靠单一位置。

编辑:Apple Bug 报告雷达https://openradar.appspot.com/radar?id=5033927626457088

0 投票
5 回答
16296 浏览

ios - 如何使用 Swift 从 iOS HealthKit 应用程序读取心率?

我正在使用以下 Swift 代码。

我收到以下错误消息:

找不到接受类型为“(quantityType:HKSampleType,quantitySamplePredicate:NSPredicate,选项:HKStatisticsOptions,(_,_,_)-> Void)”的参数列表的“HKStatisticsQuery”类型的初始化程序

请告诉我如何解决这个问题。

0 投票
1 回答
335 浏览

ios - 通用应用程序不支持 HKHealthStore 首选单位?

我有一个引用 HealthKit 的通用 iOS 应用程序。当应用程序安装在 iPhone 上时,应用程序使用 HKHealthStore 来检索健康数据,当它在 iPad 上时,我通过检查 HKHealthStore.isHealthDataAvailable 是否为假来跳过 HealthKit 查询。这一切都很好,但为了让应用程序在 iPad 上运行,我必须从我的应用程序的 .plist 中的“所需设备功能”下删除“healthkit”条目。这是有道理的,因为 iPad 上没有 healthkit,所以需要它,所以应用程序不会安装在 iPad 上。所有这些都已经在我提交到应用商店并获得批准的应用中完成。

现在我正在更新应用程序,我想显示用户可能在 Health App 中手动调整的单位偏好。HKHeathStore 的文档说您可以使用preferredUnitsForQuantityTypes方法执行此操作。但是,从我的 iPhone 应用程序调用此方法会给我以下错误:

除了我的应用程序 ID 中已经有 healthkit 权利。如果我在 .plist 的“必需的设备功能”部分下添加“healthkit”条目,那么这个错误就会消失,我会得到想要的结果。但这对我来说不是解决方案,因为那时我无法在 iPad 上安装该应用程序。

我的问题是,我如何支持 iPhone 版本可以成功调用 HKHealthStore.preferredUnitsForQuantityTypes 的通用应用程序?

编辑这是我的 .entitlements 文件的样子:

0 投票
2 回答
1524 浏览

ios - Monitor heart rate from HealthKit --> HKAnchoredObjectQuery only called after applicationDidBecomeActive (BUG or FEATURE?)

I am writing a simple app to monitor the heart rate (HKQuantityTypeIdentifierHeartRate) from HealthKit whenever a new health rate value is written to HealthKit.

As seen at WWDC2015 (session 203) I am using a HKAnchoredObjectQuery which should work for adding and deleting objects. Whenever I start the app I am calling the HKQuery for the newest objects and executingQuery which works fine!!! But I am getting no new samples even if the samples are there, but if I bring the app to the background and again to the foreground I am getting all the new heart rates. IS IT A BUG? Or what shall I do to monitor the heart rate without bringing the app to the back- and foreground?

Here is the code I am using (everything is stored in the AppDelegate), I am calling [self requestAccessDataTypes]; from didFinishLaunchingWithOptions:


0 投票
1 回答
579 浏览

apple-watch - 将饮食卡路里添加到 iPhone 上的健康套件不会在手表应用健康套件上更新

我有一个带有 watch OS 2 应用程序的 iPhone 应用程序。

iPhone 和 watch 应用程序都可以成功地从健康包中写入和查询饮食卡路里信息。

如果我从手表上写下饮食卡路里信息,然后查询健康商店,我会得到正确的结果。

但是,如果我从 iPhone 应用程序写入饮食卡路里信息或在健康应用程序上手动输入,手表查询结果将永远不会获得新条目。

读取和写入健康包数据基于此处的 FIT 示例https://github.com/ooper-shlab/Fit-Swift/tree/master/Fit

有没有遇到同样的问题或者有什么建议可以解决?

0 投票
1 回答
598 浏览

iphone - 过滤不是来自我的应用程序的 HKSample 数据

在我当前的项目中,我需要将 HealthKit 示例与我的应用程序同步。我正在从 HealthKit 获取样本数据并将一些应用程序生成的样本写回 HealthKit。对于获取我使用以下功能: -

我的应用程序不需要考虑自己编写到 HealthKit Store 的示例。那么,有没有一种方法可以过滤样本数据,避免接收我的应用程序编写的样本数据,而只考虑其他应用程序编写的样本数据?

0 投票
2 回答
751 浏览

ios - HKHealthStore.isHealthDataAvailable 的目的是什么?

对于设置HealthKit框架,Apple 推荐以下方式:

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

我的问题与第 2 步有关。

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

该方法在哪些情况下可以返回 false ?

0 投票
1 回答
1120 浏览

ios - HealthKit 锻炼查询似乎真的很慢

我有一些从 healthkit 查询数据的代码。我们从 healthkit 以及最近的锻炼中获得了各种样本和数量。在我的手机上(通常是每天一次锻炼——尽管 Basis 将内容存储为多次锻炼),锻炼查询大约需要 8 秒,但所有其他类型的完成时间不到一秒。

感觉就像,在幕后,这个查询正在做一个线性扫描,其他的都被索引了。想知道是否有其他人遇到过这种情况或有任何想法?

0 投票
1 回答
115 浏览

swift - HealthKit 未经授权与集合中的 0 条记录

IOS 9.2.1,斯威夫特 2.1

我试图在访问 HealthKit 时向用户提供合理的错误消息,并为查询返回 0 条记录。

可能是在选定的时间范围内没有记录,或者可能是用户不允许访问健康中的特定数据集。在这两种情况下,“storage.requestAuthorizationToShareTypes”都提供了“成功”值 true。

有没有办法让 HKHealthKit 商店给我一个代码,表明访问已被禁用?

我的代码如下

谢谢迈克

0 投票
1 回答
4021 浏览

ios - Health 处理多个步骤源的方式与 HealthKit 不同——swift

我的 Swift iOS 应用程序与 HealthKit 连接,以向用户显示他们一天中到目前为止已经走了多少步。在大多数情况下,这是成功的。当步数的唯一来源是 iPhone 内置计步器功能记录的步数时,一切正常,我的应用程序显示的步数与 Health 应用程序的步数相匹配。但是,当我的个人 iPhone、Pebble Time 智能手表和 iPhone 的计步器都向 Health 提供多个数据源时,我的应用程序会崩溃,记录来自两者的所有步骤。iOS Health 应用程序会根除重复的步骤(它可以这样做,因为我的 iPhone 和我的 Pebble 都每 60 秒向 Health 报告一次步骤数)并显示准确的每日步数,而我的应用程序从 HealthKit 获取的数据包括两者的所有步骤来源,造成很大的不准确。

如何利用 Health 应用程序的最终结果(步数准确),而不是利用 HealthKit 过度膨胀的步数数据流?

更新:这是我用来获取日常健康数据的代码: