¿Cómo resuelve HealthKit el registro de la misma actividad por parte de múltiples fuentes?

6

¿Qué sucede cuando hay más de una "fuente" registrada en HealthKit que realiza un seguimiento de la misma actividad?

Por ejemplo, si tengo Human el seguimiento de mi actividad en general, y luego uso Cyclemeter (que soporta 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, debería ser posible que HealthKit reconozca que estas actividades son probablemente duplicados y al menos me pregunte cómo resolver la "duplicación" (al igual que se resuelven los conflictos de sincronización). De hecho, las actividades contienen datos suficientes que tal reconocimiento debería poder realizarse de manera automática.

¿HealthKit hace esto? ¿Resuelve las grabaciones duplicadas de la misma actividad (de forma automática o semiautomática)?

    
pregunta orome 29.09.2014 - 16:41

2 respuestas

9

HealthKit es bastante inteligente con tus datos. Para cada fuente en la aplicación Salud, puede establecer la prioridad de las aplicaciones de diferencia. Toque una de las métricas en la aplicación de 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 basados en 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.

Este WWDC sería un excelente comienzo para obtener una descripción general completa .

    
respondido por el Paul Veugen 29.09.2014 - 16:58
2

En la medida en que investigué la respuesta de Paul Veugen es solo parcialmente cierta. HealthKit fusiona estos datos si utiliza 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 utilizar HKSourceQuery para identificar diferentes fuentes y, por ejemplo, solo selecciona uno.

Otro 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 los datos de las diferentes fuentes. Desde iOS 9.3 también existe la posibilidad de acceder a diferentes dispositivos de origen utilizando HKDevice.

Tomar un dispositivo siempre lo dejará con la posibilidad de que un usuario no lo haya usado parcialmente durante el período de tiempo solicitado, lo que provocará que falten puntos de datos.

Debido a esto, los resultados prioritarios seguirán siendo dolorosos, como Apple no documentó, si los datos solicitados se ordenarán según la prioridad de la fuente definida por el usuario en Salud.

Al decir esto, podría valer la pena buscar en intervalos de fechas superpuestos para identificar duplicados.

    
respondido por el Simon C. 02.09.2016 - 16:13

Lea otras preguntas en las etiquetas