#android #wear-os #google-fit
#Android #wear-ос #google-fit
Вопрос:
Я разрабатываю приложение для Android (только для смартфона, не для wear), и я хочу получить частоту сердечных сокращений с помощью googleApiClient
(Google Fit) smartwatch (например, Huawei Watch). Я пытался использовать Sensor API, но wear не указан 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();
Я потратил несколько часов на чтение документов и ответов, но не могу найти решение. Возможно, я делаю что-то не так. Данные со смартфона поступили, а с wear — нет. На Wear установлен Google fit.
Спасибо за ваш ответ!
Комментарии:
1. Вы пытались синхронизировать свое носимое устройство со своим мобильным устройством?
2. @Ultraman это было давно, так что на самом деле я даже не помню проблему, но если я не ошибаюсь — да, носимое устройство всегда синхронизировалось и соединялось со смартфоном
3. @Devnock, вам удалось решить эту проблему? Я рассматриваю проблему как вашу. Часы и телефон сопряжены, я мог видеть свои часы в режиме носимых. NodeApi.getConnectedNodes (mGoogleApiClient). Но часы не указаны в источнике данных.