为什么我的可穿戴设备未在Google Fit API中列为DataSource?

Eye*_*ear 8 android heartbeat google-fit wear-os

我正在尝试使用三星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))
Run Code Online (Sandbox Code Playgroud)

但是,当我想列出所有可用的心率监测器时,我收到一个空列表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);
                        }
                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

DataType例如,如果我更改为,TYPE_STEP_COUNT_CUMULATIVE或者TYPE_LOCATION_SAMPLE,列表将包含我的手机,这似乎是合乎逻辑的.

为什么手表没有被列为可用DataSource呢?

请注意:这不是重复:

  1. 从"传感器"三星Gear Live获取心率
  2. 如何在Android Wearable中访问心率传感器?

因为我想通过最近发布的Google Fit API访问心跳数据.

我不认为在手表上启用调试模式是必要的,但我已经尝试过了.此外,我不认为添加BODY_SENSORS权限是必要的,因为整个过程无论如何都是由Google Fit API管理的,但我也尝试过这一点,但没有运气.

ian*_*ake 6

Samsung Gear Live 手表不会将自己宣传为BLE 心率监测器,因此不会通过普通的低功耗蓝牙 API或基于其构建的 Google Fit API提供心率数据。