Расчет общего времени сна из HealthKit с помощью Swift - PullRequest
0 голосов
/ 15 апреля 2020

Есть еще один вопрос! Я пытаюсь рассчитать общее время сна из приложения здоровья. Я могу получить информацию, используя следующее:

func readSleepAnalysis(date: Date) {

    if let mindfulType = HKObjectType.categoryType(forIdentifier: HKCategoryTypeIdentifier.sleepAnalysis) {

        let startDate = convertStartDate(StartDate: date)
        let endDate = convertEndDate(EndDate: date)
        let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: .strictStartDate)

        let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierEndDate, ascending: false)

        let query = HKSampleQuery(sampleType: mindfulType, predicate: predicate, limit: 30, sortDescriptors: [sortDescriptor]) { (query, tmpResult, error) -> Void in

            if error != nil {
                    print("Something went wrong getting sleep analysis: \(String(describing: error))")
                return
            }
            if let result = tmpResult {

                for item in result {
                    if let sample = item as? HKCategorySample {
                        let value = (sample.value == HKCategoryValueSleepAnalysis.inBed.rawValue) ? "InBed" : "Asleep"
                            print("Healthkit sleep: \(sample.startDate) \(sample.endDate) value: \(value)")
                    }
                }
            }
        }
        healthKit.execute(query)
    }
}

Тем не менее, я получаю:

сон Healthkit: 2020-04-13 01:27:55 +0000 2020- 04-13 11:49:51 +0000 значение: InBed

Спящий аптечка: 2020-04-13 02:46:41 +0000 2020-04-13 11:49:51 +0000 значение: Спящий

Healthkit sleep: 2020-04-12 07:48:06 +0000 2020-04-12 12:32:59 +0000 значение: Спит

Healthkit sleep: 2020-04-12 04 : 18: 33 +0000 2020-04-12 07:17:29 +0000 значение: уснул

Я пытаюсь получить только сумму времени сна в часах: минутах.

Любые предложения или комментарии, как всегда, с благодарностью.

...