Получить ЧСС от Android Wear с помощью Google fit
Я разрабатываю приложение для Android (только для смартфонов, а не для ношения), и я хочу получить пульс, используя googleApiClient
(Google Fit) от SmartWatch (Huawei Watch Fe). Я пытался использовать Sensor API, но износ не указан как DataSource
в Google Fit API.
REQUEST_INTERVAL = 5;
Fitness.SensorsApi.findDataSources(client, new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_LOCATION_SAMPLE,
DataType.TYPE_STEP_COUNT_CUMULATIVE,
DataType.TYPE_DISTANCE_DELTA,
DataType.TYPE_HEART_RATE_BPM)
.setDataSourceTypes(DataSource.TYPE_RAW, DataSource.TYPE_DERIVED)
.build())
.setResultCallback(new ResultCallback<DataSourcesResult>() {
@Override
public void onResult(DataSourcesResult dataSourcesResult) {
for (DataSource dataSource : dataSourcesResult.getDataSources()) {
// There isn't heart rate source here
final DataType dataType = dataSource.getDataType();
Fitness.SensorsApi.add(client,
new SensorRequest.Builder()
.setDataSource(dataSource)
.setDataType(dataType)
.setSamplingRate(REQUEST_INTERVAL, TimeUnit.SECONDS)
.build(),
listener)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
...
}
});
}
}
}
});
Другие данные (такие как шаги, местоположение и расстояние) пришли. Мой клиент:
googleApiClient = new GoogleApiClient.Builder(activity)
.addApi(Plus.API)
.addApi(Fitness.RECORDING_API)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.SENSORS_API)
.addApi(LocationServices.API)
.addApi(Fitness.BLE_API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.addScope(Plus.SCOPE_PLUS_PROFILE)
.addScope(new Scope(Scopes.PROFILE))
.addScope(new Scope(Scopes.PLUS_LOGIN))
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
.addScope(new Scope(Scopes.FITNESS_BODY_READ))
.addScope(new Scope(Scopes.FITNESS_LOCATION_READ))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
Я провел несколько часов, читая документы и ответы, но не могу найти решение. Может я что то не так делаю. Данные со смартфона поступили, а от износа - нет. Google fit устанавливается на износ.
Спасибо за Ваш ответ!
1 ответ
Как указано в документации:
Google Fit включает поддержку датчиков на мобильном устройстве и датчиков Bluetooth с низким энергопотреблением, сопряженных с устройством. Google Fit позволяет разработчикам реализовывать поддержку других датчиков и представлять их как программные датчики в приложениях Android. Датчики, поддерживаемые Google Fit, доступны для приложений Android в качестве объектов источника данных.
Вы можете использовать DataSource.getDevice
метод получения информации об устройстве для источника данных. Информация об устройстве полезна для того, чтобы отличать одинаковые датчики на разных устройствах, показывать информацию об устройстве от датчика пользователю или обрабатывать данные по-разному в зависимости от устройства. Например, вас может заинтересовать чтение данных конкретно с датчика на носимом устройстве, а не с датчика того же типа на телефоне.
Вы можете проверить эту связанную ветку SO: Android: Как получить данные Google Fit с носимого устройства?