¿Qué sucede cuando más de una "fuente" registrada con HealthKit rastrea la misma actividad?
Por ejemplo, si tengo Human rastreando mi actividad en general, y luego uso Cyclemeter (que es compatible con HealthKit en la versión 10.3) para rastrear un paseo en bicicleta en particular, ambos (supongo) enviarán la misma actividad a HealthKit. Presumiblemente, HealthKit debería poder reconocer que estas actividades son probablemente duplicados y al menos preguntarme cómo resolver la "duplicación" (tanto como se resuelven los conflictos de sincronización). De hecho, las actividades contienen suficientes datos como para que, en general, dicho reconocimiento sea posible de realizar de forma automática.
¿Hace HealthKit esto? ¿Resuelve grabaciones duplicadas de la misma actividad (ya sea de forma automática o semiautomática)?
HealthKit es bastante inteligente con sus datos. Para cada fuente en la aplicación Salud, puede establecer la prioridad de las diferentes aplicaciones. Toque una de las métricas en la aplicación Salud, toque Compartir datos > Editar para arrastrar las fuentes en el orden correcto.
Si otras aplicaciones solicitan datos, HealthKit combinará automáticamente los conjuntos de datos, probablemente en función de las marcas de tiempo. Primero elige la aplicación de alta prioridad y llena los vacíos en los datos con la aplicación número 2, etc.
Esta WWDC sería un gran comienzo para obtener una visión general completa .
Por lo que investigué, la respuesta de Paul Veugen es solo parcialmente cierta. HealthKit fusiona estos datos si usa HKStatisticsQuery o HKStatisticsCollectionQuery. De lo contrario, dependerá de usted proporcionar una lógica para fusionar/deduplicar los resultados.
Una posible solución podría ser usar HKSourceQuery para identificar diferentes fuentes y, por ejemplo, seleccionar solo una.
Otra podría ser acceder a la fuente a través de HKSourceRevision en los resultados de una HKQuery y solo tomar los datos de una fuente o intentar comparar datos de diferentes fuentes. A partir de iOS 9.3 también existe la posibilidad de acceder a los diferentes dispositivos fuente mediante HKDevice.
Tomar un dispositivo siempre lo dejará con la posibilidad de que un usuario no haya usado parcialmente el dispositivo durante el período de tiempo solicitado, lo que conducirá a la falta de puntos de datos.
Debido a esto, los resultados de priorización seguirán siendo dolorosos, ya que Apple no documentó, si los datos solicitados se ordenarán por la prioridad de origen definida por el usuario en Salud.
Dicho esto, podría valer la pena buscar rangos de fechas superpuestas para identificar duplicados.
bmike
oromo
bmike
oromo
bmike