我正在开展健身活动跟踪器应用,我对Google Fit Sessions API有几个问题。
从Google Fit Session guide开始,如果我们要创建包含实时数据的会话,我们需要使用方法Session.Builder.setStartTime(long,TimeUnit)
指定开始时间,然后调用方法startSession
。
问题1 :如果我们使用的是实时数据,我们可以设置该会话的结束时间吗?如果我们已经定义了endTime,我们还需要调用stopSession
方法吗?
在文档中,使用指定的开始时间和结束时间创建示例会话,然后将示例数据添加到该会话。
问题2 :您如何使用实时数据创建SessionInsertRequest
会话?如何从DataSet
中获取DataSource
实时记录SessionInsertRequest.Builder.addDataSet(DataSet)
方法?
问题3 :我已经有了这种方法来查找我的DataSource
;我是否仍需要创建一个新的DataSource
对象来获取DataSet
对象(在此主题中回答:DataSet Object for the Google Fit API)?
方法:
private void findFitnessDataSources() {
Fitness.SensorsApi.findDataSources(mClient, new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_STEP_COUNT_DELTA)
.setDataSourceTypes(DataSource.TYPE_DERIVED)
.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);
}
}
}
});
//just temporarily return datasource for testing purpose
}
问题4 :如何修改我的方法以返回在会话生成器中使用的dataSource
?
谢谢。