如何获取HKMetadataKeyHeartRateMotionContext返回0以外的值

时间:2019-04-24 03:33:31

标签: swift watch-os-5

我正在从4系列苹果手表中读取HKMetadataKeyHeartRateMotionContext,我似乎唯一得到的值是0。

我在调试中运行了程序,并检查了样本值,如果我读错了它们,它们也全为0。

有什么想法为什么我没有得到0以外的值?

编辑: 再次通读文档并尝试理解该声明:

  

您可以将运动上下文添加到任何心率样本的元数据中   您创建的。这意味着其他应用程序也可以节省心率   具有(或不具有)HKMetadataKeyHeartRateMotionContext的样本   元数据密钥。

这是否意味着在创建样本时需要做一些事情才能使这些数据包含在样本中?

if let samples = results as? [HKQuantitySample]
            {

                if let sample = samples.first
                {
                    let quantity = sample.quantity // heart rate

                    if let heartRateContext = sample.metadata?[HKMetadataKeyHeartRateMotionContext] as? NSNumber // context of heart rate i.e. active, notSet, sedentary
                    {

                    print("Heart Rate - \(quantity.doubleValue(for: self.heartRateUnit)) context - \(heartRateContext)") // Print the heart rate
                        self.analyticsManager.monitorHeartRate(heartRate:(quantity.doubleValue(for: self.heartRateUnit)), heartRateContext: heartRateContext)
                    }
                    else
                    {
                        print("Heart Rate Context Could Not be Read")
                    }

                    completionHandler() // call after processing background updates

                } //end if
            } //end if

0 个答案:

没有答案