ich für heute von Google Fit mit der Bibliothek Sie beschreiben, genauer gesagt, habe ich eine Möglichkeit, das Abrufen die Gesamtzahl der Schritte finden musste:
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-fitness</artifactId>
<version>v1-rev22-1.22.0</version>
</dependency>
von dem ersten Lesung des offiziellen Google-Guide auf Arbeiten mit Datensätzen here und eine Menge Versuch und Irrtum, habe ich schließlich geschafft, ein Beispiel zu erstellen, wie alle Schritte für heute abgerufen werden.
* Hinweis: Als Voraussetzung müssen Sie Zugang für den Benutzer erhalten. Um dies zu tun, können Sie dieselbe Bibliothek verwenden, um ein Credential Objekt zu erhalten. Dies wird here beschrieben *
Sie folgende Importe benötigen:
import com.google.api.services.fitness.Fitness;
import com.google.api.services.fitness.model.*;
import com.google.api.client.googleapis.util.Utils;
Nun, um Schritte zu erhalten, musste ich zuerst die Fitness Service initialisieren:
Fitness fitness = new Fitness.Builder(
Utils.getDefaultTransport(),
Utils.getDefaultJsonFactory(),
credential //prerequisite
).build();
Danach musste ich Erhalte einen aggregierten Datensatz. Ich wollte, dass die Schritte von allen Quellen stammen, die Schritte in Google Fit synchronisiert haben. Daher habe ich eine bereits vorhandene Datenquelle verwendet.
Unten ist, wie ich die Anfrage für den Datensatz erstellt habe.
AggregateRequest aggregateRequest = new AggregateRequest();
aggregateRequest.setAggregateBy(Collections.singletonList(
new AggregateBy()
.setDataSourceId("derived:com.google.step_count.delta:com.google.android.gms:estimated_steps")));
aggregateRequest.setStartTimeMillis(DateMidnight.now().getMillis());
aggregateRequest.setEndTimeMillis(DateTime.now().getMillis());
Das Datenquelle-ID, dass ich die ganzen Schritte bringen, die auf das Google Fit-Konto verbunden ist, von allen Quellen synchronisiert wurden. in dem gegebenen Zeitraum. (es bringt immer alle Schritte - kein Delta mit den vorherigen Messungen).
Sie können auch Ihre eigene Datenquelle erstellen, aber das ist eine völlig andere Geschichte; Überprüfen Sie nickpharris's comment dafür.
Hinweis: DateMidnight und Datetime sind Klassen von der joda Bibliothek zur Verfügung gestellt.
Nachdem Sie AggregateRequest erstellt haben, können Sie es ausführen und analysieren.
Bellow ist ein Beispiel dafür, wie ich die Summe der Schritte berechne.
AggregateResponse response = request.execute();
for (AggregateBucket aggregateBucket : response.getBucket()) {
for (Dataset dataset : aggregateBucket.getDataset()) {
for (DataPoint dataPoint : dataset.getPoint()) {
for (Value value : dataPoint.getValue()) {
if (value.getIntVal() != null) {
sum += value.getIntVal(); //for steps you only receive int values
}
}
}
}
}
Um den Zugang zu diesen Informationen haben Sie gefunden here mindestens einem der Bereiche benötigen.
I verwendet https://www.googleapis.com/auth/fitness.activity.read
Dank aber die Frage nicht beantworten, überhaupt ... Ich frage speziell über die Google API Fitness, nicht eine allgemeine Frage, wie eine HTTP-Anforderung zu machen und die Antwort verarbeiten. – nickpharris
Meine schlechte, https://developers.google.com/fit/rest/v1/authorisation. Es ist einfach, Benutzeranmeldung mit Google-Konto zu machen. Autorisieren mit dem OAuth2.0-Prozess. Sobald Sie das Zugriffstoken erhalten haben, können Sie im Namen der Benutzer REST-Anforderungen stellen. – BrandonDevaleriola