2015-05-20 9 views
5

Chcę pobrać dane z HealthStore w tle, korzystając z funkcji pobierania w tle, ale ciągle pojawia się błąd: Error Domain=com.apple.healthkit Code=6 "Protected health data is inaccessible" UserInfo=0x17026fdc0 {NSLocalizedDescription=Protected health data is inaccessible}.Dane HealthKit są niedostępne w tle

Jabłko stwierdza:

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.

jakiegokolwiek obejścia dostępu do danych w tle? Czy HKObserverQuery to jedyny sposób na uzyskanie danych w tle?

Odpowiedz

7

Zgodnie z cytowaną dokumentacją nie można uzyskać dostępu do danych HealthKit, gdy telefon jest zablokowany. Możesz jednak uzyskać dostęp do danych, jeśli telefon jest odblokowany, a Twoja aplikacja jest w tle. Jeśli pobieranie w tle nastąpi, gdy telefon zostanie odblokowany, będziesz mieć dostęp do danych.

+0

Jeśli to ogranicza możliwości twojej aplikacji, powinieneś złożyć radar (o tym pisałem). – ospr

+0

W szczególności można zarejestrować dostarczanie danych w tle za pomocą - enableBackgroundDeliveryForType: frequency: withCompletion: on 'HKHealthStore'. – Allan

+2

Należy również pamiętać, że użycie 'enableBackgroundDeliveryForType: frequency: withCompletion:' nadal będzie miało ograniczenia, w których dane HealthKit nie będą dostępne, gdy telefon jest zablokowany. @tshortli wiedziałby najlepiej, ale nie sądzę, żeby było jakikolwiek obejście tego problemu. – ospr

Powiązane problemy