Как получить данные об активном времени из Samsung Health в моем приложении для Android
У меня есть приложение для Android, которое считывает данные о состоянии здоровья из Samsung Health и просматривает их. Я добавил Samsung Health sdk версии 1.4.0 и начал получать данные с помощью HealthDataResolver.ReadRequest для чтения различных значений данных, таких как общее количество шагов, расстояние и время активности. Я мог прочитать количество шагов и расстояние от HealthConstants.StepCount, но я не смог найти никакого ключа, связанного со значением, которое хранится в Samsung Health в качестве активного значения времени. Теперь мой вопрос в том, как я могу получить минуты активного времени, чтобы просмотреть их в моем приложении.
public void readSteps(){
HealthDataResolver resolver = new HealthDataResolver(mStore, null);
HealthDataResolver.Filter filter = null;
if(mReadDataRequest.getStartTime() != 0.0)
filter = HealthDataResolver.Filter.greaterThanEquals(HealthConstants.StepCount.START_TIME, mReadDataRequest.getStartTime());
HealthDataResolver.ReadRequest request = new HealthDataResolver.ReadRequest.Builder()
.setDataType(HealthConstants.StepCount.HEALTH_DATA_TYPE)
.setTimeBefore(Calendar.getInstance().getTimeInMillis())
.setFilter(filter)
.build();
try {
resolver.read(request).setResultListener(result -> {
ArrayList<BaseHealthKit> stepCounts = null;
try {
for (HealthData data : result) {
int count = data.getInt(HealthConstants.StepCount.COUNT);
double distance = data.getDouble(HealthConstants.StepCount.DISTANCE);
String startTime = data.getString(HealthConstants.StepCount.START_TIME);
String endTime = data.getString(HealthConstants.StepCount.END_TIME);
float burnedCalorie = data.getFloat(HealthConstants.StepCount.CALORIE);
if (stepCounts == null)
stepCounts = new ArrayList<>();
StepCount stepCount = new StepCount();
if (startTime != null)
stepCount.setStartTime(Long.parseLong(startTime));
if (endTime != null)
stepCount.setEndTime(Long.parseLong(endTime));
stepCount.setCount(count);
stepCount.setDistance(distance);
stepCount.setmBurnedCalories(burnedCalorie);
stepCounts.add(stepCount);
}
} finally {
result.close();
}
if (mReadDataListener != null)
mReadDataListener.onSucceedReading(stepCounts);
});
} catch (Exception e) {
Log.e(TAG, "Getting sleep data fails.", e);
} finally {
disconnect();
}
}