Ich versuche, die letzten 10 Tage Daten von Google Fit in Android (6.0) Telefon zu bekommen. Es gibt die Daten des aktuellen Tages korrekt zurück, aber wenn ich versuche, Daten für gestern oder davor abzurufen, gibt es zufällige oder falsche Daten zurück.Google Fit (Android) Erhalten Sie die letzten 10 Tage Daten
// 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);
}
}
Bitte helfen Sie mir, wie Sie die Schritte der vorherigen Tage bekommen. Oder warum bekomme ich falsche Daten? dank
möglich Duplikat von http://StackOverflow.com/Questions/28234525/Fetching-Google-Fit-Data-Into-Anando-Application?Rq=1 –
Ich lief Ihren genauen Code und meine Daten sieht gut aus. –