Я пытаюсь получить значение сна из приложения «Здоровье» на моем iPhone, но на выходе отображается 0.IOS

Программируем под IOS
Ответить
Anonymous
 Я пытаюсь получить значение сна из приложения «Здоровье» на моем iPhone, но на выходе отображается 0.

Сообщение Anonymous »

Приложение имеет разрешения приложения «Здоровье» на доступ к данным о сне. В настоящее время я могу узнать количество шагов и частоту сердечных сокращений, но данные о сне отображаются как 0. Вот код, который мне нужен для получения данных о сне. Пожалуйста, дайте мне знать, если я делаю что-то не так или что-то упускаю.
func fetchSleepData() {
let sleepType = HKObjectType.categoryType(forIdentifier: .sleepAnalysis)!
let startDate = Calendar.current.startOfDay(for: Date())
let endDate = Date()
let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: .strictStartDate)

let query = HKSampleQuery(sampleType: sleepType, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { query, samples, error in
guard let samples = samples as? [HKCategorySample], error == nil else {
print("Failed to fetch sleep data: \(error?.localizedDescription ?? "No error")")
return
}

// Calculate total sleep duration using .allAsleepValues
let totalSleep = samples.reduce(0.0) { sum, sample in
if HKCategoryValueSleepAnalysis.allAsleepValues.contains(HKCategoryValueSleepAnalysis(rawValue: sample.value) ?? .awake) {
let sleepDuration = sample.endDate.timeIntervalSince(sample.startDate)
return sum + sleepDuration
}
return sum
}

let sleepHours = totalSleep / 3600.0 // Convert seconds to hours
print("Total Sleep Hours: \(sleepHours)")

// Send Data to Backend
self.sendDataToServer(data: ["sleep_hours": sleepHours])
}

healthStore.execute(query)
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... -output-is
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»