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.");
}
}
});
}