Comment obtenir le compte d'étape à partir de Google Fit API REST comme Google Fit app?
Je suis de développement d'une application PHP qui travaillent avec Google Fit des Api pour recueillir quotidien de l'utilisateur du nombre de pas.
Je veux obtenir mon nombre de pas de "Jan 15 2015 00:00:00 GMT+0700" à "16 Jan 2015 00:00:00 GMT+0700".
- D'abord, je reçois toutes mes sources de données.
- Ensuite, chaque source de données qui ont le type de données est égale à "com.google.step_count.delta", je reçois des ensembles de données entre au-dessus des horodateurs et ajouter les valeurs de retour ensemble.
Mon code: https://gist.github.com/daitr-gu/472c4f18522172542cca
Mon résultat: https://gist.github.com/daitr-gu/1a7e11eb483a657bdc8b
J'ai trouvé qu'il y a de nombreuses sources de données et ils renvoie des valeurs différentes. Et les valeurs sont trop différents de ce que je vois dans Google Ajustement application sur mon téléphone.
Questions:
1. Qui de source de données, Google Fit app utiliser pour calculer le nombre de pas?
2. Pourquoi il y a des différents entre les sources de données de la valeur et Google Ajustement de la valeur?
3. Comment puis-je obtenir de la Google Ajustement de la valeur?
OriginalL'auteur Kahn | 2015-01-17
Vous devez vous connecter pour publier un commentaire.
Je pense que la différence que vous voyez est la différence entre la façon dont Google utilise l'API de l'Histoire et les Capteurs de l'API. Si vous utilisez PHP, vous interrogez Google Fit Store via la fitness de l'API et c'est ensuite dépend de ce que l'Application a la possibilité d'enregistrer via l'enregistrement de l'API. Donc vous ne pouvez pas voir toutes les données de l'appareil est disponible.
Je pense, mais ne sais pas pour certains, qui le Fit App utilise les capteurs de l'api. Au sein de l'Application, vous pouvez utiliser les capteurs de l'API, comme décrit dans le Google Docs Les capteurs de l'API et de manipuler les données renvoyées comme vous le désirez.
Ci-dessous montre un moyen simple d'obtenir des mesures à l'aide de TYPE_STEP_COUNT_CUMULATIVE et TYPE_RAW
Vous pouvez trouver que cela vous donne de plus près la même valeur que celle donnée par l'Ajustement de l'App. Cependant, ce n'est évidemment uniquement disponible sur l'appareil, de sorte que vous devez exécuter un service d'arrière-plan qui a mis à jour une base de données externe, qui est ce que l'Enregistrement et l'Histoire de l'Api de vous donner.
Comme un point de la note pour s'assurer que les données continuent d'être envoyé à la salle de Magasin lorsque votre application est en arrière-plan, vous devez utiliser la fonction d'Enregistrement de l'API, ce qui peut également modifier les valeurs que vous voyez.
Mise à JOUR:
Avoir écrit ci-dessus, je pensais que je devais le tester. Il s'agissait d'un matin de la marche.
C'est à partir d'un poste Google+, vous pouvez trouver ici
"merge_step_deltas vous donne la fusion de flux de toutes vos compteurs de pas. estimated_steps prend également en compte l'activité, et les estimations des mesures quand il n'y a aucun"
Celui que je n'ai pas à le bas de encore est l'capteurs à l'aide de ce que je montre ci-dessus, il ne me donne 2,548 étapes.
L'autre légèrement curieux, c'est que un jour plus tard, Fit montre moi j'ai fait 6,668 étapes, donc plus proche de la Pomme de résultat, mais un nouveau calcul de ce qui au départ, il m'a montré après les données synchronisées. Mon application affiche toujours 6,920!
Le temps pour tout synchroniser je n'ai pas de mesure.
OriginalL'auteur Longmang
Google Fit App utilise la estimated_steps source de données pour calculer le nombre de pas.
DataSourceId: dérivée:com.google.step_count.delta:com.google.android.gms:estimated_steps
Chaque source de données représente un autre appareil/de la source. Je vois que vous avez un Sony Smart Watch et un HTC Desire connecté à Google Fit. Chacun de vos appareils rapports valeurs d'Ajustement qui sont fusionnés. Merge_step_deltas vous donne la fusion de flux de toutes vos compteurs de pas. Estimated_steps prend également en compte l'activité, et les estimations étapes lorsqu'il n'en existe pas.
API REST ne peut accéder à des données qui ont été synchronisées avec le backend.
Pour obtenir les mêmes valeurs que Google Fit, lire estimated_steps de la source de données. Il doit être le même que ce que vous voyez sur https://fit.google.com/. Le dispositif pourrait avoir plus tard des valeurs qui ne sont pas encore synchronisés sur le serveur. Nous sommes en train de faire la synchronisation et la croix-plate-forme de l'expérience plus transparente.
-- Ingénieur sur Google Fit Équipe.
OriginalL'auteur Gouri Joshi
J'ai eu le plus de chance avec
derived:com.google.step_count.delta:com.google.android.gms:estimated_steps
Le résultat a été plus élevés d'abord que ce que mon téléphone a été la lecture, alors j'ai filtré sur mes deux principaux étape appareils
select{|q| q["originDataSourceId"] =~ /360|Nexus/}
et qui m'a donné le plus proche du résultat.Si j'essaie un autre jour plus tard et il est complètement à côté de la paroi, je vais revenir et notez-le ici.
OriginalL'auteur azurewraith