- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用以下代码,我获得了自开始记录值以来的累积步数。但我只想显示当天的步数而不是累积步数。
@Override
public void onConnected(@Nullable Bundle bundle) {
DataSourcesRequest dataSourceRequest = new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_STEP_COUNT_CUMULATIVE)
.setDataSourceTypes(DataSource.TYPE_RAW)
.build();
ResultCallback<DataSourcesResult> dataSourcesResultCallback = new ResultCallback<DataSourcesResult>() {
@Override
public void onResult(DataSourcesResult dataSourcesResult) {
for( DataSource dataSource : dataSourcesResult.getDataSources() ) {
if(DataType.TYPE_STEP_COUNT_CUMULATIVE.equals(dataSource.getDataType())) {
registerStepsDataListener(dataSource, DataType.TYPE_STEP_COUNT_CUMULATIVE);
}
}
}
};
Fitness.SensorsApi.findDataSources(googleApiClient, dataSourceRequest)
.setResultCallback(dataSourcesResultCallback);
Fitness.RecordingApi.subscribe(googleApiClient, DataType.TYPE_STEP_COUNT_DELTA)
.setResultCallback(subscribeResultCallback);
}
//onDataPointListener
@Override
public void onDataPoint(DataPoint dataPoint) {
for( final Field field : dataPoint.getDataType().getFields() ) {
final Value value = dataPoint.getValue( field );
runOnUiThread(new Runnable() {
@Override
public void run() {
tvSteps.setText("Field: " + field.getName() + " Value: " + value.toString());
}
});
}
}
我尝试替换数据类型常量,但这没有用。在 DataPointListener 中使用 History API 调用 readData 方法失败得很惨。当您获得所需的输出时,它会滞后很多,不应该做这样的事情。
另一种方法是在换日时,我在午夜获取累积步数的数据,然后将其存储在 SharedPreferences 中。然后从显示的累积值中减去 onDatapoint 期间的这个数字。
但是还有比这更好的方法吗?
最佳答案
基于第 2 步:使用 Google Fit History API 显示今天的数据,Google Fit for Android: History API提到:
One common use case developers have is needing data for the current day. Luckily, Google has made this easy by adding the
Fitness.HistoryApi.readDailyTotal
call, which creates aDailyTotalResult
object containing data collected for the day.
记录用户当天步数的示例代码:
private void displayStepDataForToday() {
DailyTotalResult result = Fitness.HistoryApi.readDailyTotal( mGoogleApiClient, DataType.TYPE_STEP_COUNT_DELTA ).await(1, TimeUnit.MINUTES);
showDataSet(result.getTotal());
}
您也可以尝试此 SO 帖子中给出的解决方案 - How to get step count from Google Fit REST API like Google Fit app? .我希望这对你有用。
关于android - 在 datapointListener google Fit 期间获取当天的步数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771616/
使用以下代码,我获得了自开始记录值以来的累积步数。但我只想显示当天的步数而不是累积步数。 @Override public void onConnected(@Nullable Bundle bund
我是一名优秀的程序员,十分优秀!