首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用HealthKit后台交付?

如何使用HealthKit后台交付?
EN

Stack Overflow用户
提问于 2014-08-02 05:29:46
回答 2查看 3.7K关注 0票数 1

在iOS 8 HealthKit中使用后台交付的正确方式是什么?

下面是我用来启用HealthKit后台交付的代码。

代码语言:javascript
复制
- (void)observeSleepData {
    HKCategoryType *sleepType = [HKCategoryType categoryTypeForIdentifier:HKCategoryTypeIdentifierSleepAnalysis];
    [self.healthStore enableBackgroundDeliveryForType:sleepType frequency:HKUpdateFrequencyImmediate withCompletion:^(BOOL success, NSError *error) {
        if (success) {

        }
    }];
    HKObserverQuery *query = [[HKObserverQuery alloc] initWithSampleType:sleepType predicate:nil updateHandler:^(HKObserverQuery *query, HKObserverQueryCompletionHandler completionHandler, NSError *error) {
        NSLog(@"sleep data updated");
    }];
    [self.healthStore executeQuery:query];
}

除了启用HealthKit功能之外,我还需要配置额外的东西才能使此功能正常工作吗?在iOS8原生健康应用程序中,HKObserverQuery是否响应手动输入?

EN

回答 2

Stack Overflow用户

发布于 2014-08-05 03:49:27

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

当我更新原生的Health应用程序时,我得到了类似于此的代码运行。

编辑:

我在这里给出了一个更完整的答案:https://stackoverflow.com/a/26385281/1563787

票数 2
EN

Stack Overflow用户

发布于 2016-11-01 16:06:22

HealthKit API Reference说:

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25088956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档