public static enum HealthDataResolver.AggregateRequest.TimeGroupUnit extends Enum<HealthDataResolver.AggregateRequest.TimeGroupUnit>
HealthDataResolver.agregate()
MINUTELY
HOURLY
DAILY
WEEKLY
MONTHLY
If you requests hourly average steps on today, you can set the time group unit for the aggregate request.
public class HealthDataResolverExample { // The state of connection private HealthDataStore mStore; private void getHourlySteps(long startTime, long endTime) { HealthDataResolver resolver = new HealthDataResolver(mStore, null); HealthDataResolver.AggregateRequest request = new HealthDataResolver.AggregateRequest.Builder() .setDataType(HealthConstants.StepCount.HEALTH_DATA_TYPE) .setLocalTimeRange(HealthConstants.StepCount.START_TIME, HealthConstants.StepCount.TIME_OFFSET, startTime, endTime) .addFunction(HealthDataResolver.AggregateRequest.AggregateFunction.AVG, HealthConstants.StepCount.COUNT, "average") .setTimeGroup(HealthDataResolver.AggregateRequest.TimeGroupUnit.HOURLY, 1, HealthConstants.StepCount.START_TIME, HealthConstants.StepCount.TIME_OFFSET, "hour") .build(); try { resolver.aggregate(request).setResultListener(mStepAggrResult); } catch (Exception e) { Log.d(APP_TAG, "Aggregating health data fails."); } }
The retrieved result can be checked:
private final HealthResultHolder.ResultListener<HealthDataResolver.AggregateResult> mStepAggrResult= new HealthResultHolder.ResultListener<HealthDataResolver.AggregateResult>() { @Override public void onResult(HealthDataResolver.AggregateResult result) { try { Iterator<HealthData> iterator = result.iterator(); if (iterator.hasNext()) { HealthData data = iterator.next(); // Gets hour information as yyyy-mm-dd hh, e.g. 2015-10-09 18 String hour = data.getString("hour"); // Gets the average value for the current cursor float avr = data.getFloat("average"); // ... } } finally { result.close(); } } }; }
static HealthDataResolver.AggregateRequest.TimeGroupUnit
valueOf(String name)
static HealthDataResolver.AggregateRequest.TimeGroupUnit[]
values()
public static final HealthDataResolver.AggregateRequest.TimeGroupUnit MINUTELY
yyyy-mm-dd hh:mm
public static final HealthDataResolver.AggregateRequest.TimeGroupUnit HOURLY
yyyy-mm-dd hh
public static final HealthDataResolver.AggregateRequest.TimeGroupUnit DAILY
yyyy-mm-dd
public static final HealthDataResolver.AggregateRequest.TimeGroupUnit WEEKLY
yyyy-ww
public static final HealthDataResolver.AggregateRequest.TimeGroupUnit MONTHLY
yyyy-mm
public static HealthDataResolver.AggregateRequest.TimeGroupUnit[] values()
for (HealthDataResolver.AggregateRequest.TimeGroupUnit c : HealthDataResolver.AggregateRequest.TimeGroupUnit.values()) System.out.println(c);
public static HealthDataResolver.AggregateRequest.TimeGroupUnit valueOf(String name)
name
IllegalArgumentException
NullPointerException