是否可以向 HealthKit 添加自定义数据?
Posted
技术标签:
【中文标题】是否可以向 HealthKit 添加自定义数据?【英文标题】:Is it possible to add custom data to HealthKit? 【发布时间】:2014-10-06 19:05:31 【问题描述】:我们正在制作一款应用,该应用会收集健康应用中的列表不支持的特殊类型的数据。有没有办法为此创建一个新类别?
【问题讨论】:
【参考方案1】:不,目前没有。来自HealthKit Framework Reference:
HealthKit 框架旨在以有意义的方式在应用之间共享数据。为此,该框架将数据和单位的类型限制在一个预定义的列表中。这些限制确保其他应用程序了解数据的含义以及如何使用它。 因此,开发人员无法创建自定义数据类型或单位。相反,HealthKit 试图提供一个合理完整的数据类型和单位列表。
如果我是你,我会提交一份雷达 (http://bugreport.apple.com),详细说明你希望添加的健康数据类型。
【讨论】:
这仍然有效吗?我在你链接的页面上找不到它了。 @pkyeck 见developer.apple.com/documentation/healthkit/…(看起来他们移动了它):“数量的单位必须与类型标识符文档中描述的允许单位相对应。”【参考方案2】:是的,你可以。只需将其定义为 NSDictionary
并将其传递到元数据字段即可。请注意以下自定义字段:push_ups
、sit_ups
和 status
。
let end = NSDate()
let start = NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitMinute,
value: -2, toDate: end, options: nil)
let energyBurned = HKQuantity(unit: HKUnit.kilocalorieUnit(),
doubleValue: 425.0)
let distance = HKQuantity(unit: HKUnit.mileUnit(),
doubleValue: 0)
let status = "felt okay...could have done more"
let push_ups = 40
let sit_ups = 50
let s = ["push_ups": push_ups,
"sit_ups": sit_ups,
"notes": status
] as NSDictionary
// Provide summary information when creating the workout.
let wrkOut = HKWorkout(activityType: HKWorkoutActivityType.FunctionalStrengthTraining,
startDate: start, endDate: end, duration: 0,
totalEnergyBurned: energyBurned, totalDistance: distance, metadata: s as! [NSObject : AnyObject])
【讨论】:
它在技术上是元数据 - 与其他观察收集系统(具有不同的扩展机制)不同,元数据并非旨在存储可编码值。这可能很重要,也可能无关紧要。 那么使用这种方法是否也可以将数据存储在 HealthStore 中,并在苹果 Health 应用中显示为图形上的自定义 HKUnit?以上是关于是否可以向 HealthKit 添加自定义数据?的主要内容,如果未能解决你的问题,请参考以下文章