0
Android (6.0) 전화에서 Google 피트니스에서 지난 10 일간의 데이터를 가져 오려고합니다. 현재 날짜 데이터를 올바르게 반환하지만 어제 또는 그 전에 데이터를 가져 오려고하면 무작위 또는 잘못된 데이터가 반환됩니다.Google 피트니스 (Android) 지난 10 일간의 데이터 가져 오기
// get the start and end date of the urrent mobile
Calendar cal = Calendar.getInstance();
Date now = new Date();
cal.setTime(now);
long endTime = cal.getTimeInMillis();
cal.add(Calendar.DAY_OF_YEAR, -10);
long startTime = cal.getTimeInMillis();
java.text.DateFormat dateFormat = DateFormat.getDateInstance();
//-------------steps-------------------------------
//code to get last 10 days steps
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();
DataReadResult dataReadResult=null;
dataReadResult = Fitness.HistoryApi.readData(mGoogleApiClient, readRequest).await(1, TimeUnit.MINUTES);
// display data
//Used for aggregated data
if (dataReadResult.getBuckets().size() > 0) {
Log.e("History", "Number of buckets: " + dataReadResult.getBuckets().size());
for (Bucket bucket : dataReadResult.getBuckets()) {
List<DataSet> dataSets = bucket.getDataSets();
for (DataSet dataSet : dataSets) {
showDataSet(dataSet);
}
}
}
else if (dataReadResult.getDataSets().size() > 0) //Used for non-aggregated data
{
Log.e("History", "Number of returned DataSets: " + dataReadResult.getDataSets().size());
for (DataSet dataSet : dataReadResult.getDataSets()) {
showDataSet(dataSet);
}
}
이전 단계를 수행하는 방법을 알려주십시오. 또는 왜 내가 잘못된 데이터를 얻고 있는가? 에 표시되는대로 정확한 또는 "파생 된"데이터를 얻을 것이다 이런 식으로
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(ESTIMATED_STEP_DELTAS, DataType.AGGREGATE_STEP_COUNT_DELTA)
.bucketByActivityType(1, TimeUnit.SECONDS)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
로 DataReadRequest에
DataSource ESTIMATED_STEP_DELTAS = new DataSource.Builder()
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setType(DataSource.TYPE_DERIVED)
.setStreamName("estimated_steps")
.setAppPackageName("com.google.android.gms")
.build();
및 배치 : 감사
가능한 복제본 http://stackoverflow.com/questions/28234525/fetching-google-fit-data-into-android-application?rq=1 –
정확한 코드를 실행했는데 데이터가 정상적으로 보입니다. –