gesperrt Hallo Ich versuche, die Gesundheits-Shop Beobachter mit Hintergrund Lieferung Setup aktiviert. Mein Problem ist, dass es nichts liefert, wenn der Bildschirm gesperrt ist. Ich habe meinen Code vereinfachte für diese Frage auf den Punkt zu bekommen :) ich HealthKit in meinem plist habe, und ich habe healthStore Typen Schrittzahl angenommen. Alles ist in Ordnung, wenn die Anwendung geöffnet ist, und wenn der Bildschirm gesperrt ist nicht. Aber wenn der Bildschirm gesperrt ist, bekomme ich keine Beobachtungen. Zu Testzwecken wird die Frequenz auf sofort gesetzt.HealthStor enableBackgroundDelivery wenn Bildschirm
Mein Code ist wie folgt
- (void)setupHealthStore{
if ([HKHealthStore isHealthDataAvailable])
{
NSSet *readDataTypes = [self dataTypesToRead];
self.healthStore = [[HKHealthStore alloc]init];
[self.healthStore requestAuthorizationToShareTypes:nil readTypes:readDataTypes completion:^(BOOL success, NSError *error)
{
if (success)
{
HKQuantityType *quantityType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
[self.healthStore enableBackgroundDeliveryForType:quantityType frequency:HKUpdateFrequencyImmediate withCompletion:^(BOOL success, NSError *error)
{
if (success)
{
[self setupObserver];
}
}];
}
}];
}
}
Das obige Verfahren in AppDelegate didfinishLaunchWithOptions genannt wird
Die nächste Methode
- (void)setupObserver{
HKQuantityType *quantityType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
HKObserverQuery *query = [[HKObserverQuery alloc]initWithSampleType:quantityType predicate:nil updateHandler:^(HKObserverQuery *query, HKObserverQueryCompletionHandler completionHandler, NSError *error)
{
if (!error)
{
[self alarm];
if (completionHandler)
{
NSLog(@"Completed");
completionHandler();
}
}
else
{
if (completionHandler)
{
completionHandler();
}
}
}];
[self.healthStore executeQuery:query];
}
istWenn ich die App öffne, gibt sie sofort die Beobachtung zurück.
Schauen Sie sich meine Antwort hier an: http://stackoverflow.com/a/35073904/1677480 – damirstuhec