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)); } } } }