Я пытаюсь получить шаги пользователя из HealthKit и понял, что пользователи могут добавлять шаги вручную, которые я не хочу получать.(Например, если они обманывают и устанавливают 50k шагов в один день).
Итак, я подумал над решением, как решить эту проблему, и обнаружил, что, возможно, я мог бы просто отфильтровать весь результат и извлечь данные, если данные были установлены устройством.Я имею в виду, что он может быть установлен на iPhone, но он также может быть установлен на Apple Watch.
Вот как это выглядит, когда пользователь добавляет свои собственные шаги вручную в приложении Health:
![Steps added by an user](https://i.stack.imgur.com/UqG2h.png)
Вот как это выглядит при добавлении шагов устройством:
![Steps added by a watch](https://i.stack.imgur.com/Tu47k.png)
Таким образом, когда данные устанавливаются устройством, мы можем видеть больше информации с устройства в приложении Health, а не от пользователя, который устанавливает данные вручную.
Вопрос: Как узнать, есть ли устройство в результате?
Мой текущий код для получения результатов:
func getSteps(completion: @escaping (Double, Error?) -> ()) {
let stepsQuantityType = HKQuantityType.quantityType(forIdentifier: .stepCount)!
let query = HKSampleQuery(sampleType: stepsQuantityType, predicate: nil, limit: 0, sortDescriptors: nil){ query, results, error in
if let error = error {
// Handle error
} else if let results = results, !results.isEmpty {
for result in results {
// Detect and add result if result is from a device
}
}
}
HKHealthStore().execute(query)
}