Ich arbeite an der Fitness-App. Ich benötige Informationen über die Recording_API, um die Anzahl der Schritte, verbrannten Kalorien und zurückgelegte Strecke zu erfassen. Ich bin in der Lage, die Schritte erfolgreich zu zählen, aber nicht in der Lage, die aktiven Kalorien und die Entfernung zu erhalten. Unten setze ich den Code um die Kalorien zu verbrennen.Aktiver Kalorienverbrauch mit der Google-Funktion erhalten Recording_API
googleApiClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.RECORDING_API)
.addApi(Fitness.CONFIG_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.enableAutoManage(this, 0, this)
.build();
Fitness.RecordingApi.subscribe(googleApiClient, DataType.TYPE_CALORIES_EXPENDED)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
if (status.getStatusCode() == FitnessStatusCodes.SUCCESS_ALREADY_SUBSCRIBED) {
Log.e("RecordingAPI", "Already subscribed to the Recording API");
} else {
Log.e("RecordingAPI", "Subscribed to get Calories using Recording API");
}
}
}
});
new DataReadRequest.Builder()
.aggregate(DataType.TYPE_CALORIES_EXPENDED, DataType.AGGREGATE_CALORIES_EXPENDED)
.bucketByActivitySegment(1, TimeUnit.MILLISECONDS)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
Fitness.HistoryApi.readData(mClient, readRequest).await(1, TimeUnit.MINUTES);
if (dataReadResult.getBuckets().size() > 0) {
for (Bucket bucket : dataReadResult.getBuckets()) {
String bucketActivity = bucket.getActivity();
if (bucketActivity.contains(FitnessActivities.WALKING)) {
List<DataSet> dataSets = bucket.getDataSets();
for (DataSet dataSet : dataSets) {
dumpDataSet(dataSet);
}
}
}
}
for (DataPoint dp : dataSet.getDataPoints()) {
if (dp.getEndTime(TimeUnit.MILLISECONDS) > dp.getStartTime(TimeUnit.MILLISECONDS)) {
for (Field field : dp.getDataType().getFields()) {
expendedCalories = expendedCalories + dp.getValue(field).asFloat();
}
}
}
In dem obigen Code kommt die Eimer Aktivität unbekannt und leer datapoints kommt wegen der ich nicht in der Lage bin, die Kalorien zu bekommen. Zuvor benutzte ich die HISTORY_API, mit der ich in der Lage bin, alle Informationen richtig zu bekommen, aber es funktioniert nur, wenn der Benutzer einen Google-Fit-Account hat, sonst gibt es die leeren Ergebnisse. Kann mir bitte jemand dabei helfen.
Es funktioniert, Sie benötigen nur Google-Konto ** NICHT ** Google Fit-Konto. – user1770346
Übrigens kann ich jetzt die aktiven Kalorien mit RECORDING_API brennen. Vielen Dank für Ihre Antwort – user1770346