问题标签 [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 回答
171 浏览

ios - 在现有的 HKWorkout 上添加元数据

是否可以在现有的 HKWorkout(具有 metadata 属性的 HKObject 的子类)上添加元数据?

如果不知道如何将我的应用程序中的数据添加到 healthkitstore 中的现有锻炼记录中。

0 投票
1 回答
242 浏览

ios - 如何从 HealthKit 获得每天的正念时间?

我正在尝试计算用户在白天有多少留神时间,所以我尝试这样做:

然后:

但这似乎不起作用。事实上,标签的文本并没有改变我在 Interface Builder 中设置的内容。我已经将这种模式用于其他 HealthKit 数据,例如每日步数,但我不知道为什么这没有效果。

编辑:没关系,这是一个非常愚蠢的错误,我应该放在completion(totalTime)for-in 循环之后。哎呀

0 投票
0 回答
517 浏览

ios - Healthkit:设置“enableBackgroundDelivery”,但当某些设备上的用户有新的健康数据时,iOS 根本不会唤醒应用程序

我正在我的应用程序上使用 HealthKit SDK(它与健康有关)。我设置了“enableBackgroundDelivery”,希望 iOS 在有新的用户健康数据时唤醒我的应用程序,以便我可以开始查询用户的健康数据。当有新的健康数据并且代码在我的设备和用户的设备上按预期工作时,iOS 会唤醒应用程序,但在某些设备上,iOS 根本不会唤醒应用程序。

如果我的代码有问题,那么它不应该适用于任何设备,但它适用于我的设备和用户的设备,所以我认为我的代码出现问题的可能性很小。当我搜索该问题的其他可能性时,我发现当某些设备上有用户的新健康数据时,iOS 不唤醒应用程序的原因如下。

  1. 健身追踪和健康在设置 -> 隐私 -> 运动和健身下关闭。并且运动校准和距离在设置 -> 隐私 -> 位置服务 -> 系统服务下关闭。在这种情况下,默认的健康应用程序本身无法获取健康数据,因此它不会唤醒我的应用程序。

  2. 我的应用程序的后台应用程序刷新已关闭。在这种情况下,当应用程序被最小化或强制关闭时,HealthKit 不会唤醒我的应用程序,因为用户设置就是这样。

  3. iOS 故意不频繁唤醒我的应用程序或任何应用程序,原因有很多,例如节省用户设备的电池电量,或者如果用户正在积极使用如此多的应用程序,那么 iOS 会优先考虑这些应用程序,并且 iOS 会将我们应用程序的服务安排到未来. iOS 内部算法会考虑设备的性能和优化,将服务分配给安装在设备上的应用程序,这意味着我们的代码只有在 iOS 决定执行时才会执行。这可能是为什么我看不到某些用户的健康数据的原因,但持续了多长时间?iOS 应该至少在一两天后唤醒我的应用程序,但它没有。


对于我看到问题的用户,上述#1 和#2 设置已正确设置。如果#3是原因,iOS应该至少在一两天后唤醒我的应用程序,但它并没有唤醒应用程序,我已经与一些用户进行了沟通,他们在iOS默认的“健康”应用程序中有一些数据.


有没有人遇到过这种问题?除了上述原因(代码方面和 iOS 设置方面),还有人知道为什么 iOS 没有唤醒我的应用程序的任何其他原因吗?

我的代码与此类似:https ://gist.github.com/phatblat/654ab2b3a135edf905f4a854fdb2d7c8

谢谢。

0 投票
1 回答
77 浏览

objective-c - HealthKit 读取数据 Heart Reat 和 BloodPressure '同步后的最新更新'

我正在同步 HealthKit 中的 Heart Reat、BloodPressure 数据。

这种方法的问题是当用户输入不会同步的历史数据时。如何执行相同的查询,但使用 CreationDate(而不是 StartDate),或某种将历史值标识为较新的数据库 ID?

我只想从 healthkit 中过滤掉所有新创建的值。

0 投票
2 回答
2176 浏览

ios - 如何从 HealthKit Swift 4 获取每小时的步数

我需要为用户在任何特定日期每小时采取的步骤绘制图表。但是,如果用户的步骤从今天下午 3:58 开始,到今天下午 4:10 结束,那么我在这段时间内只得到一个 HKStatistics 对象。我无法将这些数据分成两个样本,因为我需要在 3-4 pm 时段和 4-5 pm 时段采取步骤。

0 投票
2 回答
538 浏览

ios - 如何将总距离添加到 HKLiveWorkouts

我正在使用新的 HKLiveWorkoutBuilder 来创建 Healthkit Workout。一切都很好,只是我不知道如何给锻炼一个总距离。我添加了有效的距离样本(尽管它在 Health 中显示了两次单位,例如 200 mi mi)但是当稍后查询锻炼时它没有总距离,即使在锻炼构建器中完成锻炼()函数锻炼也没有总距离。有谁知道我如何在现场锻炼中获得总距离?

0 投票
1 回答
1116 浏览

swift - 尝试开始 HKLiveWorkout 在会话中不断意外发现 nil

我正在尝试制作一个锻炼应用程序,其中用户的心率显示在 Apple Watch 上。我一直在关注 Apple 的 WWDC“锻炼的新方法”视频。这是链接https://developer.apple.com/videos/play/wwdc2018/707/?time=615

无论如何,每次我尝试运行应用程序时,我都会收到错误消息“线程 1:在展开可选值时意外发现致命错误”

我尝试在“尝试”之后添加一个问号(?),但所做的只是防止应用程序崩溃并且不会开始锻炼。这是完整的代码。PS 我对 Swift 还很陌生,我发现新的 HealthKit 还没有太多示例代码,这让我非常沮丧。(我知道它相当新,但仍然令人沮丧:D)。谢谢您的帮助

0 投票
0 回答
477 浏览

ios - HKHealthStore 再次请求授权

在我的 iOS 应用程序的早期版本中,我要求用户授予在 Health 应用程序中编写 Dietary Energy 的权限(请参见下面的代码):

许多用户授予将能源数据写入健康应用程序的权限。现在,我想更新我的应用程序,我需要添加另一个示例类型:Dietary Sugar,我想再次显示 Health 访问窗口,以便老用户也可以访问 Dietary Sugar。问题是这个窗口不再向老用户显示。如何在应用程序的更新版本中强制请求新添加类型的请求授权?谢谢你。

0 投票
0 回答
183 浏览

ios - 尝试删除 HKWorkout 时出现 HealthKit 错误“找不到要删除的对象”

HKWorkout我在尝试“修改”时遇到了一个长期存在的问题,即通过(1)复制现有锻炼(2)更新元数据(3)删除“旧”锻炼(在我的代码中选择锻炼)从 HealthKit ) 然后 (4) 保存新修改的锻炼。该代码在 98% 的情况下可以完美运行,但在 2% 的情况下我会收到此错误,并且最终会出现重复的锻炼。我做错什么了吗?

顺便说一句,我真的希望 HealthKit 能让我们修改数据,这样就不需要这种舞蹈了。

0 投票
0 回答
965 浏览

ios - Healthkit per hour 包含步数、距离和卡路里的活动摘要?

查询 Healthkit 应该返回一个包含步数、距离和卡路里的数组对象。

我能够通过
活动步骤/小时单独归还它们


活动距离/小时

活动卡路里/小时

相反,我想将所有这些组合成一个对象。

是否可以直接从 HealthKit 本身以每小时间隔率生成上述格式数据?如果不可能,我如何将所有 3 个数据组合成一个对象,其中数据的范围可以从一天-一周-一个月。