Ich versuche Benutzerschritte während einer Sitzung zu verfolgen. Diese Sitzungen können zwischen 30 Sekunden und 30 Minuten dauern. Ich beginne die Sitzung und gehe herum und dann höre ich eine Minute später die Sitzung auf. Dies gibt immer 0 Schritte zurück. Hier ist der Code, den ich verwende.iOS HealthKit verfolgen Benutzerschritte während der Sitzung
func readUserSteps(startDate:NSDate, endDate:NSDate) {
let weightSampleType = HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)
let predicate = HKQuery.predicateForSamplesWithStartDate(startDate, endDate: endDate, options: .None)
let query = HKSampleQuery(sampleType: weightSampleType!, predicate: predicate, limit: 0, sortDescriptors: nil, resultsHandler: {
(query, results, error) in
if results == nil {
print("There was an error running the query: \(error)")
} else {
var stepCount:Double = 0
for steps in results as! [HKQuantitySample]
{
stepCount += steps.quantity.doubleValueForUnit(HKUnit.countUnit())
}
print("Steps Taken: \(stepCount)")
}
})
self.healthKitStore.executeQuery(query)
}
speichere ich das aktuelle Datum als so: let startTime = NSDate()
den Beginn einer Sitzung darstellen und sobald der Benutzer stoppt die Sitzung, die ich am Ende der Sitzung als so sparen: let endTime = NSDate()
. Ich rufe dann die obige Funktion mit diesen beiden Variablen auf. Leider gibt 'stepCount' immer 0 zurück. Was mache ich hier falsch?