【发布时间】:2018-11-08 13:37:10
【问题描述】:
我希望我的计步器显示从上午 12 点到凌晨 12 点的步数,但我找不到可行的方法。我正在使用 Google 的健身 API
代码如下:
Calendar cal = Calendar.getInstance();
Date today = new Date();
cal.setTime(today);
long endTime = cal.getTimeInMillis();
cal.add(Calendar.MONTH, -1);
long startTime = cal.getTimeInMillis();
java.text.DateFormat dateFormat = DateFormat.getDateInstance();
Log.e("History", "Range Start: " + dateFormat.format(startTime));
Log.e("History", "Range End: " + dateFormat.format(endTime));
//Check how many steps were walked and recorded in the last 7 days
final DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
.bucketByTime(1, TimeUnit.DAYS)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
final DataReadResult dataReadResult = Fitness.HistoryApi.readData(mGoogleApiClient, readRequest).await(1,TimeUnit.MINUTES);
【问题讨论】:
-
This 应该会有所帮助。
-
12 点到 12 点之间的 24 小时?那为什么要减去一个月呢?为什么评论说“过去 7 天”?
-
@M.Prokhorov 是的,下面的解决方案对我有用。之前我正在检索上周的数据,但我改变了主意。
-
仅供参考,非常麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 中内置的 java.time 类所取代,之后。见Tutorial by Oracle。 -
仅供参考,日子并不总是从凌晨 12 点到 12 点。