我正在尝试将原始数据的侦听器添加到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());
}
}
});
答案 0 :(得分:0)
有些传感器正在使用其他API(例如Samsung)。因此,他们需要以自己的方式获取某些信息并对其进行绑定。
在这种情况下,您需要将.setDataSource(dataSource)
添加到SensorRequest:builder()
。它是可选的,但在某些情况下建议使用,因为可以并且需要自定义数据集以供使用。
有些传感器无法在短时间内提供数据。在这种情况下,您需要将samplingRate
设置为高于5秒。