0
獲得睡眠數據我想從谷歌飛度下午7點(開始時間)獲得睡眠數據前一天的時至11時(結束時間)。 使用以下代碼我會在午夜後獲取數據。 例如,如果Google fit的睡眠時間爲晚上10點,早晨6點醒來,我從早上12點到上午6點就能看到它。所以我沒有在午夜前得到睡眠數據。 請告訴我什麼時候應該設置爲開始時間。這是我的AsyncTask:如何從谷歌飛度
private class InsertAndVerifyDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
fitSleepTime = 0;
fitSleepStartTime = 0;
fitWakeupTime = 0;
super.onPreExecute();
}
protected Void doInBackground(Void... params) {
Date now = new Date();
long endTime, startTime;
int hrOfDay;
Calendar cal = Calendar.getInstance();
cal.setTime(now);
hrOfDay = cal.get(Calendar.HOUR_OF_DAY);
cal.set(Calendar.HOUR_OF_DAY, 19);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
if (hrOfDay < 12)
cal.add(Calendar.DAY_OF_YEAR, -1);
startTime = cal.getTimeInMillis();
sleepDayTime = MyApplication.sdf.format(cal.getTime());
// cal.setTime(now);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
endTime = cal.getTimeInMillis();
// Begin by creating the query.
DataReadRequest readRequest = queryFitnessData(startTime, endTime);
DataReadResult dataReadResult = Fitness.HistoryApi.readData(
mClient, readRequest).await(1, TimeUnit.MINUTES);
printData(dataReadResult);
if (hrOfDay < 12) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(now);
cal1.set(Calendar.HOUR_OF_DAY, 0);
cal1.set(Calendar.MINUTE, 0);
cal1.set(Calendar.SECOND, 0);
startTime = cal1.getTimeInMillis();
cal1.set(Calendar.HOUR_OF_DAY, 11);
cal1.set(Calendar.MINUTE, 59);
cal1.set(Calendar.SECOND, 59);
endTime = cal1.getTimeInMillis();
// Begin by creating the query.
DataReadRequest readRequest1 = queryFitnessData(startTime, endTime);
DataReadResult dataReadResult1 = Fitness.HistoryApi.readData(
mClient, readRequest1).await(1, TimeUnit.MINUTES);
printData(dataReadResult1);
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (DashBoardSleepFragment.this.getView() != null) {
getLastNightSleepData();
setSleepData();
}
super.onPostExecute(result);
}
}
嘗試檢查,如果你有正確的[記錄健身數據](https://developers.google.com/fit/android/record)進行睡眠活動。這裏是關於Google Fit API睡眠插入和讀取會話中的DataPoint的[相關SO帖子](http://stackoverflow.com/a/42188679/5995040)。希望這可以幫助。 –
你解決了這個問題嗎?我面臨同樣的事情。希望你能發佈解決方案。 – Klaus
@Klaus我發佈了我的答案;希望它也適用於您! – Shruti