尝试添加()OnDataPointListener时的状态错误

时间:2017-10-25 13:13:57

标签: google-fit

我正在尝试将原始数据的侦听器添加到Sensor。我成功发现了BLE传感器,我甚至可以使用录制API订阅它,但是无法通过add()获取原始值。下面的代码将打印"无法注册Listener"状态为ERROR,无法解决,也无法进一步解释。

findDataSources()会返回相应类型的数据源。

Fitness.SensorsApi.add(googleApiClient,
    new SensorRequest.Builder()
        .setDataType(DataType.TYPE_CYCLING_WHEEL_REVOLUTION)
        .setSamplingRate(2, TimeUnit.SECONDS)
        .build()
        , new OnDataPointListener() {
            @Override
            public void onDataPoint(DataPoint dataPoint) {
                Log.d(TAG, "DataPoint: " + dataPoint.toString());
            }
         }).setResultCallback(new ResultCallback<Status>() {
             @Override
             public void onResult(@NonNull Status status) {
                 if (status.isSuccess()) {
                     Log.d(TAG, "Listener registered.");
                 } else {
                     Log.e(TAG, "Failed to register Listener.");
                     Log.e(TAG, status.toString());
                 }
         }
});

1 个答案:

答案 0 :(得分:0)

有些传感器正在使用其他API(例如Samsung)。因此,他们需要以自己的方式获取某些信息并对其进行绑定。

在这种情况下,您需要将.setDataSource(dataSource)添加到SensorRequest:builder()。它是可选的,但在某些情况下建议使用,因为可以并且需要自定义数据集以供使用。

有些传感器无法在短时间内提供数据。在这种情况下,您需要将samplingRate设置为高于5秒。