Android Fitness API无法从可穿戴传感器中读取数据

时间:2016-03-19 21:30:44

标签: android wear-os google-fit google-fit-sdk

我一直在阅读有关Google Fit API的信息,特别是传感器API(https://developers.google.com/fit/android/sensors),其中说明了:传感器API提供对Android设备和传感器上可用传感器的原始传感器数据流的访问可在可穿戴设备中使用的配套设备。

此外,观看Google的示例视频时,他们说:“它们可能是Android设备上的传感器或配套设备上提供的传感器。例如,对于步骤,Fit将使用手机上的步数计数器或任何连接的可穿戴设备,无论哪个它认为这是最准确的“。

阅读本文我了解Fit API将从可用的最佳传感器中读取,但使用他们的示例,连接了可穿戴设备,我只能从一个数据源读取步骤:来自我的Android手机的数据源。

我添加了代码:

Fitness.SensorsApi.findDataSources(mClient, new DataSourcesRequest.Builder()
                // At least one datatype must be specified.
                .setDataTypes(DataType.TYPE_STEP_COUNT_DELTA)
                // Can specify whether data type is raw or derived.
                .setDataSourceTypes(DataSource.TYPE_RAW)
                .build())
                .setResultCallback(new ResultCallback<DataSourcesResult>() {
                    @Override
                    public void onResult(DataSourcesResult dataSourcesResult) {
                        Log.i(TAG, "Result: " + dataSourcesResult.getStatus().toString());

                        for (DataSource dataSource : dataSourcesResult.getDataSources()) {
                            Log.i(TAG, "Data source found: " + dataSource.toString());
                            Log.i(TAG, "Data Source type: " + dataSource.getDataType().getName());

                            //Let's register a listener to receive Activity data!
                            if (dataSource.getDataType().equals(DataType.TYPE_STEP_COUNT_DELTA)
                                    && mListener == null) {
                                Log.i(TAG, "Data source for LOCATION_SAMPLE found!  Registering.");
                                registerFitnessDataListener(dataSource,
                                        DataType.TYPE_STEP_COUNT_DELTA);
                            }
                        }
                    }
                });

这里我只从我的Android设备获取数据源,而不是从我的手机和我的可穿戴设备(Moto 360 2gen)获取数据源。

你们有没有任何关于我为什么没有在结果中获得可穿戴数据源的线索?。

感谢。

1 个答案:

答案 0 :(得分:0)

SensorsApi.findDataSources方法从运行Activity的设备获取原始传感器和派生传感器(在您的情况下,它是移动设备)。如果您想将可穿戴设备用作数据源,则需要先通过蓝牙连接。尝试使用Bluetooth Scan API!希望这会有所帮助。