2016-04-11 14 views

答えて

0

あなたは、挿入、更新、トレーニングデータを削除する、などの読み取りなどのフィットネス店で一括操作を実行するためにアプリを可能にFitness History APIを使用することができます。

あなたは、トレーニング履歴からデータを読み取るためにDataReadRequestインスタンスを作成する必要があります。

Calendar cal = Calendar.getInstance(); 
Date now = new Date(); 
cal.setTime(now); 
long endTime = cal.getTimeInMillis(); 
cal.add(Calendar.WEEK_OF_YEAR, -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 
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(); 

することもできます。このデータを一緒に時間やセッションによってBucketオブジェクトのグループ。この例では、先週の集計ステップデータを要求し、そのデータを1日ごとにバケットします。このtutorialから

Calendar cal = Calendar.getInstance(); 
Date now = new Date(); 
cal.setTime(now); 
long endTime = cal.getTimeInMillis(); 
cal.add(Calendar.HOUR_OF_DAY, -1); 
long startTime = cal.getTimeInMillis(); 

DataSource dataSource = new DataSource.Builder() 
    .setAppPackageName(this) 
    .setDataType(DataType.TYPE_STEP_COUNT_DELTA) 
    .setName("Step Count") 
    .setType(DataSource.TYPE_RAW) 
    .build(); 

int stepCountDelta = 1000000; 
DataSet dataSet = DataSet.create(dataSource); 

DataPoint point = dataSet.createDataPoint() 
     .setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS); 
point.getValue(Field.FIELD_STEPS).setInt(stepCountDelta); 
dataSet.add(point); 

この例では、各DataPoint日に歩いた歩数を表す集約データ点を使用します。

+0

今、ユーザーがアプリを使い始めて以来、データを取得したい場合は、今日まで、何がのstartTimeとendTimeのでしょうか?そして、私はどのバケツ戦略を使用すべきですか? –

+0

私の質問は、今までユーザーがアプリをインストールしてから歩いた歩数を調べる方法でした。あなたの答えはまったく無関係です。 –

+0

私の例に基づいて、 'DataReadRequest'を使って、歩いたり記録した歩数を調べることができます。あなたは 'DataReadRequest'を作成したら、[ここ](http://code.tutsplus.com/tutorials/google-fit-述べたように、' Fitness.HistoryApi.readData'コマンドを使用して 'GoogleApiClient'からのデータを要求することができますfor-android-history-api-cms-25856)を参照してください。呼び出しが成功した場合、 'DataReadResult'オブジェクトからユーザーのフィットネスデータにアクセスすることができます。 – abielita

0

私は自分自身に疑問を持っていたこと:質問だから、この関連

チェック。私がやったことでDataRequestを構築しました:今

endTimeは(今日):

Calendar cal = Calendar.getInstance(); 
Date now = new Date(); 
cal.setTime(now); 
long endTime = cal.getTimeInMillis(); 

とGoogleフィットアプリの最初のバージョンがリリースされた時に開始時間:

cal.set(2014, 9, 28); 
cal.set(Calendar.HOUR_OF_DAY, 0); //so it get all day and not the current hour 
cal.set(Calendar.MINUTE, 0); //so it get all day and not the current minute 
long startTime = cal.getTimeInMillis(); 

DataReadRequestビルド:(あなたがしたい場合は、バケット可能)

 DataReadRequest readRequest = new DataReadRequest.Builder() 
       .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 
       .read(DataType.AGGREGATE_STEP_COUNT_DELTA) 
       .enableServerQueries() 
       .build(); 

あなたは28から始まるすべてのデータを取得するこの方法では、2014年10月

関連する問題