public void parseDataSet(DataSet dataSet) { for(DataPoint dp : dataSet.getDataPoints()) { Date start = new Date(dp.getStartTime(TimeUnit.MILLISECONDS)); Date end = new Date(dp.getEndTime(TimeUnit.MILLISECONDS)); Log.d(LOG_TAG, "Type: " + dp.getDataType().getName()); Log.d(LOG_TAG, "Date: " + start + ":" + end); for(Field field : dp.getDataType().getFields()) { Log.d(LOG_TAG, "Field: " + field.getName() + " Value: " + dp.getValue(field)); } } }
private void onBucketLoaded(Bucket bucket) { FitnessSessionData fitnessSessionData = new FitnessSessionData(); fitnessSessionData.name = bucket.getSession().getName(); fitnessSessionData.appName = bucket.getSession().getAppPackageName(); fitnessSessionData.activity = bucket.getSession().getActivity(); fitnessSessionData.start = new Date(bucket.getSession().getStartTime(TimeUnit.MILLISECONDS)); fitnessSessionData.end = new Date(bucket.getSession().getEndTime(TimeUnit.MILLISECONDS)); if(bucket.getDataSet(DataType.AGGREGATE_STEP_COUNT_DELTA).getDataPoints().isEmpty()) { fitnessSessionData.steps = 0; } else { fitnessSessionData.steps = bucket.getDataSet(DataType.AGGREGATE_STEP_COUNT_DELTA).getDataPoints().get(0).getValue(Field.FIELD_STEPS).asInt(); } if(bucket.getDataSet(DataType.AGGREGATE_CALORIES_EXPENDED).getDataPoints().isEmpty()) { fitnessSessionData.calories = 0; } else { fitnessSessionData.calories = (int) bucket.getDataSet(DataType.AGGREGATE_CALORIES_EXPENDED).getDataPoints().get(0).getValue(Field.FIELD_CALORIES).asFloat(); } fitnessSessionDataList.add(fitnessSessionData); }
private void queryData() { Calendar cal = Calendar.getInstance(); Date now = new Date(); cal.setTime(now); long endTime = cal.getTimeInMillis(); cal.add(Calendar.DAY_OF_MONTH, -6); long startTime = cal.getTimeInMillis(); SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); DataType[] dataTypes = { DataType.TYPE_WEIGHT, DataType.TYPE_BODY_FAT_PERCENTAGE, DataType.TYPE_BASAL_METABOLIC_RATE }; for (DataType dataType : dataTypes) { DataReadRequest readRequest = new DataReadRequest.Builder() .read(dataType) .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) .build(); DataReadResult dataReadResult = Fitness.HistoryApi.readData(mClient, readRequest).await(1, TimeUnit.MINUTES); Log.i(TAG, "== DATA POINTS - " + dataType.getName() + " =="); for (DataPoint dp : dataReadResult.getDataSet(dataType).getDataPoints()) { Log.i(TAG, "Data point:"); Log.i(TAG, "\tType: " + dp.getDataType().getName()); Log.i(TAG, "\tDate: " + dateFormat.format(dp.getTimestamp(TimeUnit.MILLISECONDS))); for (Field field : dp.getDataType().getFields()) { Log.i(TAG, "\tField value: " + dp.getValue(field)); } } } }
for(DataPoint dp : dataSet.getDataPoints()) { if(session.getActivity() == FitnessActivities.WALKING) { long sTime = dp.getStartTime(TimeUnit.MILLISECONDS);
float distanceTraveledFromDataPoints = 0; for (DataPoint dp : dataSet.getDataPoints()) { Log.d(TAG, "Data point:"); Log.d(TAG, "\tType: " + dp.getDataType().getName());
@Override public void run() { // Find steps from Fitness API DataReadRequest r = queryFitnessData(); DataReadResult dataReadResult = Fitness.HistoryApi.readData(client, r).await(1, TimeUnit.MINUTES); boolean stepsFetched = false; if (dataReadResult.getBuckets().size() > 0) { Bucket bucket = dataReadResult.getBuckets().get(0); DataSet ds = bucket.getDataSet(DataType.TYPE_STEP_COUNT_DELTA); if (ds != null) { for (DataPoint dp : ds.getDataPoints()) { for (Field field : dp.getDataType().getFields()) { if (field.getName().equals("steps")) { stepsFetched = true; listener.onStepsCountFetched(dp.getValue(field).asInt()); } } } } } if (!stepsFetched) { // No steps today yet or no fitness data available listener.onStepsCountFetched(0); } } });
Log.d(LOG_TAG, "GPS DATA: " + dLocation.getDataPoints().size()); if(sessionsExerciseGPS.get(j).getDataPoints().size() > 0) { insertRequest = new SessionInsertRequest.Builder() .setSession(sessionsExercise.get(j))