Ios8 如何使用HealthKit后台交付?

Ios8 如何使用HealthKit后台交付?,ios8,healthkit,Ios8,Healthkit,在iOS 8 HealthKit中使用后台传送的正确方式是什么 以下是我启用HealthKit后台交付的代码 -(无效)观测数据{ HKCategoryType*sleepType=[HKCategoryType categoryTypeForIdentifier:HKCategoryTypeIdentifierSleepAnalysis]; [self.healthStore enableBackgroundDeliveryForType:sleepType频率:HKUpdateFrequen

在iOS 8 HealthKit中使用后台传送的正确方式是什么

以下是我启用HealthKit后台交付的代码

-(无效)观测数据{
HKCategoryType*sleepType=[HKCategoryType categoryTypeForIdentifier:HKCategoryTypeIdentifierSleepAnalysis];
[self.healthStore enableBackgroundDeliveryForType:sleepType频率:HKUpdateFrequencyImmediate with Completion:^(布尔成功,N错误*错误){
如果(成功){
}
}];
HKObserverQuery*query=[[HKObserverQuery alloc]initWithSampleType:sleepType谓词:nil updateHandler:^(HKObserverQuery*query,HKObserverQueryCompletionHandler completionHandler,NSError*error){
NSLog(“睡眠数据更新”);
}];
[self.healthStore executeQuery:query];
}

除了启用HealthKit功能之外,我还需要配置额外的东西来实现此功能吗?
HKObserverQuery
是否响应iOS8本机健康应用程序中的手动输入?

根据我自己的有限测试,来自HKObserverQuery的响应仅表示您指定的数据类型发生了更改。它不会告诉您发生了什么变化,也不会返回新数据。只要在
if(success){}
块中放置一个实际的查询(可能是一个锚定查询),上面的代码就应该可以工作

我在更新本机健康应用程序时运行了类似的代码

编辑:


我在这里给出了一个更完整的答案:

根据我自己有限的测试,来自HKObserverQuery的响应只意味着您指定的数据类型发生了一些变化。它不会告诉您发生了什么变化,也不会返回新数据。只要在
if(success){}
块中放置一个实际的查询(可能是一个锚定查询),上面的代码就应该可以工作

我在更新本机健康应用程序时运行了类似的代码

编辑:

我在这里给出了一个更完整的答案:

上面说:

HealthKit数据仅在用户设备上本地保存。为了安全起见,当设备被锁定时,HealthKit存储将被加密。HealthKit商店只能由授权的应用程序访问。因此,在后台启动应用程序时,您可能无法从应用商店读取数据;然而,即使手机被锁定,应用程序仍然可以向商店写入数据。HealthKit会临时缓存数据,并在手机解锁后立即将其保存到加密存储中

报告说:

HealthKit数据仅在用户设备上本地保存。为了安全起见,当设备被锁定时,HealthKit存储将被加密。HealthKit商店只能由授权的应用程序访问。因此,在后台启动应用程序时,您可能无法从应用商店读取数据;然而,即使手机被锁定,应用程序仍然可以向商店写入数据。HealthKit会临时缓存数据,并在手机解锁后立即将其保存到加密存储中


这是正确的。一旦收到更改通知,您必须查询您感兴趣的数据。最后,您必须调用IOS在回调中提供给您的完成函数,以通知它您已完成数据处理。这是正确的。一旦收到更改通知,您必须查询您感兴趣的数据。最后,您必须调用IOS在回调中提供给您的完成函数,以通知它您已完成数据处理?如果是这样,您可以通过在引号中的行前面加上
-参见。如果不是,你可能想更清楚地说明你在解释官方文件。你可以在AppDeveloper中找到它。链接:我已经编辑了你的答案,以表明这是一个直接引用。在将来,你应该能够自己做到这一点-看。这是一个直接的报价吗?如果是这样,您可以通过在引号中的行前面加上
-参见。如果不是,你可能想更清楚地说明你在解释官方文件。你可以在AppDeveloper中找到它。链接:我已经编辑了你的答案,以表明这是一个直接引用。在将来,你应该能够自己做这件事——看。