2015-05-20 2 views
5

Я хочу вытащить данные HealthStore в фоновом режиме с использованием фоновой выборки, но я продолжаю получать ошибку: Error Domain=com.apple.healthkit Code=6 "Protected health data is inaccessible" UserInfo=0x17026fdc0 {NSLocalizedDescription=Protected health data is inaccessible}.Данные HealthKit недоступны в фоновом режиме

Apple, говорится:

Because the HealthKit store is encrypted, your app cannot read data from the store when the phone is locked. This means your app may not be able to access the store when it is launched in the background.

Любой обходной путь для доступа к данным в фоновом режиме? Является ли HKObserverQuery единственным способом получить данные в фоновом режиме?

ответ

7

Как указано в документации, которую вы указали, нет доступа к данным HealthKit, когда телефон заблокирован. Однако вы можете получить доступ к данным, если телефон разблокирован, а ваше приложение находится в фоновом режиме. Поэтому, если фоновая выборка происходит, когда телефон разблокирован, вы сможете получить доступ к данным.

+0

Если это ограничивает возможности вашего приложения, вы должны подать радар (я подал заявку об этом). – ospr

+0

В частности, вы можете зарегистрироваться для получения дополнительной информации с помощью - enableBackgroundDeliveryForType: frequency: withCompletion: on 'HKHealthStore'. – Allan

+2

Также обратите внимание, что использование 'enableBackgroundDeliveryForType: frequency: withCompletion:' будет по-прежнему иметь ограничение, когда данные HealthKit недоступны, когда телефон заблокирован. @tshortli будет знать самое лучшее, но я не думаю, что для этого есть обход. – ospr

Смежные вопросы