目前正在使用 Google Fit API,但在使用 Sensors API 时遇到了一些麻烦。我正在尝试为我的应用程序的锻炼获取用户当前的速度,但文档有点混乱。
在此代码段中是来自 Google 信息页面的示例:
Fitness.SensorsApi.add(
mClient,
new SensorRequest.Builder()
// Optional but recommended for custom data sets.
.setDataType(DataType.TYPE_SPEED)// Can't be omitted.
.setSamplingRate(1, TimeUnit.SECONDS).setAccuracyMode(SensorRequest.ACCURACY_MODE_HIGH)
.build(), mListener3)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
Log.i(TAG, "Listener registered!");
} else {
Log.i(TAG, "Listener not registered.");
}
}
});
//添加监听器
mListener3 = new OnDataPointListener() {
@Override
public void onDataPoint(DataPoint dataPoint) {
final float speed = dataPoint.getValue(Field.FIELD_SPEED).asFloat();
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.i(TAG, "In Speed" + speed );
speedTxtView.setText("" + speed );
}
});
}
目前,我正在获取所有其他数据类型值,例如距离、心率、步数和当前活动,但无法获取用户的当前速度。我做得对吗?