Я хотел, чтобы общее количество шагов в беге и ходьбе раздельно
Подход 1
Я могу получить шаги, используя
let healthStore = HKHealthStore()
func getTodaysSteps(completion: @escaping (Double) -> Void) {
let stepsQuantityType = HKQuantityType.quantityType(forIdentifier: .stepCount)!
let now = Date()
let startOfDay = Calendar.current.startOfDay(for: now)
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: now, options: .strictStartDate)
let query = HKStatisticsQuery(quantityType: stepsQuantityType, quantitySamplePredicate: predicate, options: .cumulativeSum) { _, result, _ in
guard let result = result, let sum = result.sumQuantity() else {
completion(0.0)
return
}
completion(sum.doubleValue(for: HKUnit.count()))
}
healthStore.execute(query)
}
Подход 2
Я также пытался с CoreMotion
, CMPedometer
, где я могу получить общее количество шагов, используя pedoMeter.queryPedometerData(from: to:)
и с CMMotionActivityManager
's queryActivityStarting(from: to:)
Я могу получить вид активности, например, ходьба, бег и т. Д.
Я не уверен, как мне это совместить, и не уверен насчет гарантии точности
Заранее спасибо !!