Google Fit getHistoryClient и getSessionsClient - PullRequest
0 голосов
/ 12 марта 2019

Я обнаружил странное поведение в запросе Фитнеса, которое не могу объяснить. Я создаю параллельно два запроса, один к истории, как:

DataReadRequest readRequest = new DataReadRequest.Builder()
        .aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)
        .bucketByTime(1, TimeUnit.HOURS)
        .enableServerQueries()
        .setTimeRange(startTime, System.currentTimeMillis(), TimeUnit.MILLISECONDS)
        .build();

Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this))
                .readData(readRequest) ... add listeners

И еще для сеансов, таких как:

SessionReadRequest request = new SessionReadRequest.Builder()
            .setTimeInterval(startTime, System.currentTimeMillis(), TimeUnit.MILLISECONDS)
            .read(DataType.TYPE_ACTIVITY_SEGMENT)
            .readSessionsFromAllApps()
            .enableServerQueries()
            .build();

    Fitness.getSessionsClient(this, GoogleSignIn.getLastSignedInAccount(this))
            .readSession(request) ... add listeners

Мой startTime генерируется так:

Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.HOUR_OF_DAY, -1);
long startTime = cal.getTimeInMillis();

И я получаю результаты в своем журнале для истории:

DataSet{d:activity.summary:gms:aggregated[
RawDataPoint{[3, 3560719, 1]@[1552377379822000000, 1552380940541000000](4,5)}, 
RawDataPoint{[7, 38157, 1]@[1552377341665000000, 1552377379822000000](4,5)}]}

А для сессий:

Session []

Я вижу в журнале, что у меня есть два типа активности (3 - Все еще (не двигаясь) и 7 - Ходьба) в моем подгонке к последнему часу, но как объяснить, что я не получаю это в запросе Сессий?

  • Когда я пытаюсь сделать startTime неделю назад, я получаю результаты в запросе сеансов.

1 Ответ

1 голос
/ 12 марта 2019

Вот связанное сообщение SO , в котором данные из History API не соответствуют приложению Fit. А согласно документации, SessionsClient предоставляет точку входа для создания и управления Sessions пользовательской активностью в Google Fit. A Session представляет временной интервал со связанными метаданными. Сессии сами по себе не содержат данных о фитнесе. Вы можете думать о сессиях как об объектах метаданных с информацией, которая поможет вам запрашивать данные из фитнес-магазина позже.

...