Аптечку получают отдельно для бега и ходьбы - PullRequest
0 голосов
/ 22 марта 2019

Я хотел, чтобы общее количество шагов в беге и ходьбе раздельно

Подход 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:) Я могу получить вид активности, например, ходьба, бег и т. Д.

Я не уверен, как мне это совместить, и не уверен насчет гарантии точности

Заранее спасибо !!

...