Google Fit DataSource Device (устройство, которое собирает данные) имеет значение null.

Я использую Google Fit API на телефоне Android. Подписка на различные типы данных и извлечение данных из истории работают нормально. Я пытаюсь получить информацию об устройстве, которое записало данные, то есть о телефоне. Согласно документации, у DataSource есть метод getDevice(), который возвращает «устройство, на котором собираются данные», но устройство равно null. Почему?

Мой код для доступа к информации об устройстве:

 val request = DataReadRequest.Builder()
                .setTimeRange(from, to, TimeUnit.MILLISECONDS)
                .enableServerQueries()
                .setLimit(DATA_POINT_LIMIT)

 request.read(DataType.TYPE_ACTIVITY_SEGMENT)

 historyClient.readData(request.build())
     .addOnSuccessListener {
         data.dataSets.forEach {
             //it.dataSource //Data source is not null
             //it.dataSource.device //Device is null
         }
 }

https://developers.google.com/android/reference/com/google/android/gms/fitness/data/DataSource#getDevice()


person computerman    schedule 10.06.2020    source источник


Ответы (1)


DataSource, которое вы возвращаете, соответствует объединенному DataSource для этого DataType; он будет содержать DataPoints для различных источников DataSource.

Для данного DataPoint вы можете получить источник DataSource с помощью этого метода (с учетом оговорок в документации): https://developers.google.com/android/reference/com/google/android/gms/fitness/data/DataPoint#getOriginalDataSource()

person Graeme Morgan    schedule 11.06.2020