History APIを使ってデータを追加する

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

Fitness.HistoryApi.insert()を使うと、直接データを追加することができます。

private void insertData() {
  Activity activity = getActivity();
  if (activity == null) { return; }

  // データソースを作る
  DataSource dsApp = new DataSource.Builder()
    .setAppPackageName(activity)
    .setDataType(DataTypes.STEP_COUNT_CUMULATIVE)
    .setName("myapp-stepcount")
    .setType(DataSource.TYPE_RAW)
    .build();

  // データソースを元に、データセットを作る
  long DAY_IN_MS = 1000 * 60 * 60 * 24;
  Date now = new Date();
  long endTime = now.getTime();
  long startTime = endTime - (DAY_IN_MS);

  DataSet dataSet = DataSet.create(dsApp);
  dataSet.add(
    dataSet.createDataPoint()
      .setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS)
      .setIntValues(1024)
  );

  // データセットを元にリクエストオブジェクトを作成
  DataInsertRequest insreq = new DataInsertRequest.Builder()
    .setDataSet(dataSet)
    .build();

  // API呼び出し
  PendingResult<Status> pendingResult =
    Fitness.HistoryApi.insert(mApiClient, insreq);

  // 結果を処理するCallbackを指定。
  pendingResult.setResultCallback(new ResultCallback<Status>() {
    @Override
    public void onResult(Status status) {
      if (status.isSuccess()) {
        // Insertion succeeded
        addMessage("insert is succeeded.");
      } else {
        // Insertion failed
        addMessage("insert is failed.");
      }
    }
  });
}
1つ上へ / ブログトップへ