這可能是一個新手問題,但我已經失去了一天的時間來弄清楚不成功。 我正在使用Google Fit API進入我的Android應用程序,並且需要顯示一些數據,例如跑步和走每日步驟。我設法顯示數據,但以時間單位(f.e運行x分鐘)。我需要逐步顯示它。如何從Google Fit API檢索每日跑步和步行步驟
以下代碼中的剪斷顯示瞭如何檢索爲時間單位(毫秒)數據:
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)
.bucketByTime(1, TimeUnit.DAYS)
.setTimeRange(start, end, TimeUnit.MILLISECONDS)
.build();
Fitness.HistoryApi.readData(client, readRequest).setResultCallback(new ResultCallback<DataReadResult>() {
@Override
public void onResult(DataReadResult dataReadResult) {
if (dataReadResult.getBuckets().size() > 0) {
display.show("Bucket DataSet.size(): "
+ dataReadResult.getBuckets().size());
retrieveHistoryData(dataReadResult, client.getContext());
}
}
.....
private void retrieveHistoryData(DataReadResult dataReadResult, Context context) {
int walking = 0;
int running = 0;
int biking = 0;
for (Bucket bucket : dataReadResult.getBuckets()) {
List<DataSet> dataSets = bucket.getDataSets();
for (DataSet dataSet : dataSets) {
display.show("dataSet.dataType: " + dataSet.getDataType().getName());
for (DataPoint dp : dataSet.getDataPoints()) {
walking += getBucketData(dp, FitnessActivities.WALKING);
running += getBucketData(dp, FitnessActivities.RUNNING);
biking += getBucketData(dp, FitnessActivities.BIKING);
}
}
}
Log.d(TAG, Constants.KEY_WALKING_STEPS + ": " + walking);
Log.d(TAG, Constants.KEY_RUNNING_STEPS + ": " + running);
Log.d(TAG, Constants.KEY_BIKING_STEPS + ": " + biking);
}
private int getBucketData(DataPoint dp, String activityName) {
int count = 0;
for (Field field : dp.getDataType().getFields()) {
Log.d(TAG, "Field " + field.getName() + " " + FitnessActivities.getName(dp.getValue(field).asInt()) + " = " + dp.getValue(field).asInt() + " field.describeContents()" + field.describeContents());
if ("activity".equals(field.getName()) && activityName.contentEquals(FitnessActivities.getName(dp.getValue(field).asInt()))) {
count += dp.getValue(field).asInt();
}
}
return count;
}
TNX提前。
問候
MB
「例如,將TYPE_STEP_COUNT_DELTA數據類型傳遞給此方法以檢索每日總步驟。您可以傳入具有各自每日總計的實例數據類型。有關支持的數據類型的更多信息,請參閱[AGGREGATE_INPUT_TYPES](https://developers.google.com/android/reference/com/google/android/gms/fitness/data/DataType#AGGREGATE_INPUT_TYPES)。「 –
Tnx快速回放。對不起,但我沒有看到符合我要求的任何類型。我需要跑步和步行活動每日數據顯示在步驟單位。就像在Google健身應用程序中一樣。 – MladenB