Healthkit wrist temperature not matching with health app

65 Views Asked by At

I am fetching wrist temperature using HKStatisticsCollectionQuery on Apple Watch but the data doesn't match up with Health app itself.

iphone Health app (Cel.--Fer.) 36.51 -- 97.72, 36.76 -- 98.16, 36.26 -- 97.27, 36.08 -- 96.94

HKStatisticsCollectionQuery data 36.17 -- 97.10, 36.56 -- 97.82, 36.25 -- 97.26, 36.01 -- 96.83

Below is the code

func GetWristTemp() {
let healthStore = HKHealthStore()

var interval = DateComponents()
interval.day = 1

let currentDate = Date()
let startOfDay = Calendar.current.startOfDay(for: currentDate)
let anchorDate = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: currentDate)

let predicate = HKQuery.predicateForSamples(withStart: startOfDay,
                                            end: currentDate,
                                            options: [.strictStartDate])
            
let query = HKStatisticsCollectionQuery.init(quantityType: HKQuantityType(.appleSleepingWristTemperature),
                                             quantitySamplePredicate: predicate,
                                             options: [.discreteAverage, .separateBySource],
                                             anchorDate: anchorDate ?? currentDate,
                                             intervalComponents:interval)
query.initialResultsHandler = { query, results, error in
    if let myResults = results {
        for source in (myResults.sources()) {
            myResults.enumerateStatistics(from: startOfDay, to: currentDate) { result, stop in
                var quantity: HKQuantity?
                quantity = result.averageQuantity(for: source)
                
                if let quantity = quantity {
                    var data = 0.0
                    data = quantity.doubleValue(for: .degreeCelsius())
                    print("Temp - \(data)")
                }
            }
        }
    }
}
healthStore.execute(query)
}

Any help would be grateful. Thank you.

Fetched wrist temperature using Healthkit in Swift but the data doesn't match with Health app data.

0

There are 0 best solutions below