Почему мой носимый предмет не указан как источник данных в Google Fit API?

Я пытаюсь получить доступ к монитору сердечного ритма часов Samsung Gear Live. Часы соединены с трубкой 4.4.4 и работают правильно. Я следую официальному образцу BasicSensorsApi.

Я могу успешно подключиться к сервисам Google Play в следующей области:

addScope(new Scope(Scopes.FITNESS_LOCATION_READ_WRITE))
            .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
            .addScope(new Scope(Scopes.FITNESS_BODY_READ_WRITE))

Но затем, когда я хочу перечислить все доступные мониторы сердечного ритма, я получаю пустой список DataSource:

private void findFitnessDataSources() {
    Fitness.SensorsApi.findDataSources(mGoogleApiClient, new DataSourcesRequest.Builder()
            .setDataTypes(
                    DataType.TYPE_HEART_RATE_BPM)// At least one datatype must be specified.
            .setDataSourceTypes(
                    DataSource.TYPE_RAW)// Specify whether data type is raw or derived.
            .build())
            .setResultCallback(new ResultCallback<DataSourcesResult>() {
                @Override
                public void onResult(DataSourcesResult dataSourcesResult) {
                    for (DataSource dataSource : dataSourcesResult.getDataSources()) {
                        if (dataSource.getDataType().equals(DataType.TYPE_HEART_RATE_BPM)
                                && mListener == null) {
                            registerFitnessDataListener(dataSource,
                                    DataType.TYPE_HEART_RATE_BPM);
                        }
                    }
                }
            });

Если я изменю DataType например, TYPE_STEP_COUNT_CUMULATIVE или же TYPE_LOCATION_SAMPLE, список будет содержать мой телефон, что кажется логичным.

Почему часы не указаны как доступные DataSource затем?

Пожалуйста, обратите внимание: это не дубликат:

  1. Получите пульс от "Датчика" Samsung Gear Live
  2. Как получить доступ к датчику сердечного ритма в Android Wearable?

потому что я хочу получить доступ к данным о сердцебиении через недавно выпущенный Google Fit API.

Я не думаю, что включение режима отладки на часах необходимо, но я попробовал это. Кроме того, я не думаю, что добавление BODY_SENSORS разрешение необходимо, потому что в любом случае весь процесс управляется Google Fit API, но я тоже попробовал это, но безуспешно.

1 ответ

Решение

Часы Samsung Gear Live не рекламируются как монитор сердечного ритма BLE и, следовательно, не предоставляют данные о сердечном ритме через обычный Bluetooth Low Energy API или API Google Fit, который построен на нем.

Другие вопросы по тегам