【问题标题】:HealthKit data inaccessible in background后台无法访问 HealthKit 数据
【发布时间】:2015-05-20 21:52:43
【问题描述】:

我想使用后台提取在后台提取 HealthStore 数据,但我不断收到错误消息:Error Domain=com.apple.healthkit Code=6 "Protected health data is inaccessible" UserInfo=0x17026fdc0 {NSLocalizedDescription=Protected health data is inaccessible}

苹果声明:

由于 HealthKit 存储区已加密,因此当手机锁定时,您的应用无法从存储区读取数据。这意味着您的应用在后台启动时可能无法访问商店。

在后台访问数据的任何解决方法? HKObserverQuery 是在后台获取数据的唯一途径吗?

【问题讨论】:

    标签: ios background-process healthkit hkhealthstore


    【解决方案1】:

    如您引用的文档中所述,手机锁定时无法访问 HealthKit 数据。但是,如果手机已解锁且您的应用程序在后台,则您可以访问数据。因此,如果在手机解锁时发生后台提取,您将能够访问数据。

    【讨论】:

    • 如果这限制了您应用的功能,您应该提交一份雷达(我已经提交了一份)。
    • 具体来说,您可以使用 - enableBackgroundDeliveryForType:frequency:withCompletion: on HKHealthStore 注册数据的后台交付。
    • 另请注意,使用enableBackgroundDeliveryForType:frequency:withCompletion: 仍然存在手机锁定时无法访问 HealthKit 数据的限制。 @tshortli 最清楚,但我认为没有任何解决方法。
    • 这不是您应该尝试解决的问题。 HealthKit 数据使用 iOS 数据保护在静态时被有意加密。当手机被锁定时,任何东西都无法访问 HealthKit 数据,因为在用户输入密码之前无法对其进行解密。有关数据保护的更多信息,请参阅apple.com/business/docs/iOS_Security_Guide.pdf
    • @tshortli 感谢您的确认和信息 :) 不幸的是,这严重限制了某些应用程序中的功能,这可能会对客户满意度产生不利影响,尽管我理解为什么它可能是必要的(不幸的是)。见 rdar://20011490
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2021-09-18
    • 2017-06-23
    相关资源
    最近更新 更多