In che modo HealthKit risolve la registrazione della stessa attività da più fonti?


7

Cosa succede quando più di una "fonte" registrata con HealthKit tiene traccia della stessa attività?

Ad esempio, se ho Human che tiene traccia della mia attività in generale e quindi uso Cyclemeter (che supporta HealthKit nella versione 10.3) per tenere traccia di un particolare giro in bicicletta, entrambi (presumo) invieranno la stessa attività a HealthKit. Presumibilmente dovrebbe essere possibile per HealthKit riconoscere che queste attività sono probabilmente duplicati e almeno mi chiedono come risolvere la "duplicazione" (così come i conflitti di sincronizzazione vengono risolti). In effetti, le attività contengono dati sufficienti che tale riconoscimento dovrebbe generalmente essere possibile eseguire automaticamente.

HealthKit fa questo? Risolve le registrazioni duplicate della stessa attività (automaticamente o semi-automaticamente)?


Ciò potrebbe essere prematuro poiché Cyclemeter 10.3 non è ancora stato rilasciato sull'app store. Apple sta chiaramente cambiando il codice del kit di salute con la versione 8.0.2 di iOS.
bmike

@bmike: Cyclemeter è solo un esempio: la domanda si applica a due o più fonti.
orome,

AFAIK ci sono zero app nell'app store che iniettano dati nel kit di salute, quindi il mio suggerimento è prematuro. Sono sicuro che gli sviluppatori sanno da giugno come Apple ha codificato le cose per funzionare, ma fino a quando il codice non scenderà in strada non sapremo cosa Apple ha effettivamente codificato e rilasciato. La mia ipotesi è che i dati saranno taggati con il nome di dominio inverso e otterrai due serie di dati distinti senza fusione - ma a questo punto sono solo ipotesi.
bmike

@bmike: diverse app ora (8.0.2) funzionano con HealthKit come fonti. Controlla l'app store.
orome,

Perché non modificare in app specifiche che funzionano davvero poi nella tua domanda?
bmike

Risposte:


9

HealthKit è piuttosto intelligente con i tuoi dati. Per ogni sorgente nell'app Salute, puoi impostare la priorità delle app differenza. Tocca una delle metriche nell'app Salute tocca tocca Dati> Modifica per trascinare le fonti nell'ordine giusto.

Se altre app richiedono dati, HealthKit unirà automaticamente i set di dati, probabilmente in base ai timestamp. Seleziona prima l'app ad alta priorità e colma le lacune nei dati con l'app numero 2, ecc.

Questo WWDC sarebbe un ottimo inizio per ottenere una panoramica completa .


2

Per quanto ho cercato, la risposta di Paul Veugen è solo parzialmente vera. HealthKit unisce questi dati se si utilizza HKStatisticsQuery o HKStatisticsCollectionQuery. Altrimenti dipenderà da te fornire una logica per unire / deduplicare i risultati.

Una possibile soluzione potrebbe essere quella di utilizzare HKSourceQuery per identificare fonti diverse e, ad esempio, selezionarne solo una.

Un altro potrebbe essere quello di accedere alla fonte tramite HKSourceRevision nei risultati di una HKQuery e prendere solo i dati da una fonte o provare a confrontare i dati dalle diverse fonti. Da iOS 9.3 c'è anche la possibilità di accedere ai diversi dispositivi sorgente utilizzando HKDevice.

Prendere un dispositivo ti lascerà sempre con la possibilità, che un utente non abbia utilizzato parzialmente il dispositivo durante il periodo di tempo richiesto, cosa porterà a punti dati mancanti.

A causa di ciò, i risultati resteranno comunque dolorosi, poiché Apple non ha documentato, se i dati richiesti verranno ordinati in base alla priorità di origine definita dall'utente in Health.

Detto questo, potrebbe valere la pena esaminare intervalli di date sovrapposti per identificare i duplicati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.