iOS WatchOS5 - как программно определить, был ли Apple Watch на запястье (изношен) через определенный промежуток времени? - PullRequest
1 голос
/ 09 марта 2019

Меня интересует, есть ли какой-нибудь HealthKit или другой источник данных, который я могу запросить, чтобы узнать, носили ли Apple Watch / соприкасались ли они с запястьем в определенный промежуток времени.В настоящее время я полагаюсь на запрос HealthKit для HeartRate, и кажется, что если я не получаю показания пульса в определенном окне, то часы, скорее всего, были сняты с запястья или заряжались.

Есть лилучший способ определить, носили ли часы Apple Watch на запястье?

Проблема этого метода в том, что он не очень нагляден - если пользователь в последний момент надел часы и получилПри измерении эта логика будет рассматривать весь период как имеющий часы «Вкл».Есть ли что-то лучше?

// obtain heartRateSamples from HealthKit and filter them
let hrFilterStart = startDate.addingTimeInterval(startSecondsOffset)
let hrFilterEnd = hrFilterStart.addingTimeInterval(Double(30 * 60) )

let heartRateDuringTimeSlice =  heartRateSamples.filter{ sample -> Bool in
    let fallsBetween = (hrFilterStart ... hrFilterEnd).contains(sample.startDate)
    return fallsBetween
}

if heartRateDuringTimeSlice.count == 0 {
    //watch is not on the wrist - probably charging, ignore this interval
}

1 Ответ

1 голос
/ 11 марта 2019

HealthKit не предоставляет никакой информации, которую вы можете использовать, чтобы надежно определить, были ли часы Apple Watch на запястье.Использование наличия частоты пульса или других автоматически собранных образцов будет работать достаточно хорошо для большинства пользователей, но имейте в виду, что существуют ситуации, когда образцы частоты пульса могут не собираться с постоянной частотой, даже когда часы находятся на запястье.

...