0
から睡眠データを取得するために、どのように私は午前11時(終了時間)に午後7時間グーグルフィット(開始時刻)から睡眠データ前日のを取得したいです。 次のコードを使用して、深夜のデータを取得します。 たとえば、Googleのフィット感が睡眠時間が午後10時で、起床時間が午前6時であれば、私は午前12時から午前6時にそれを取得します。だから私は真夜中前に睡眠データを取得しません。 開始時間を何時に設定するか教えてください。ここに私のAsyncTaskは次のとおりです。は、Googleのフィット
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 Sleepの[関連するSOの投稿](http://stackoverflow.com/a/42188679/5995040)に、SessionのDataPointを挿入して読み込みます。お役に立てれば。 –
この問題を解決しましたか?私は同じことに直面している。あなたが解決策を投稿できるかどうか分かります。 – Klaus
@Klaus私は自分の答えを投稿しました;それもあなたのために働くことを願っています! – Shruti