Session session = new Session.Builder()
.setName("Name")
.setDescription("Data gathered from App")
.setActivity(FitnessActivities.WALKING)
.setStartTime(steps.getStartDate(), TimeUnit.MILLISECONDS)
.setEndTime(endTime, TimeUnit.MILLISECONDS)
.build();
DataSource stepsDataSource = new DataSource.Builder()
.setAppPackageName(context.getPackageName())
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setName("App - step count")
.setType(DataSource.TYPE_RAW)
.build();
DataSource distanceDataSource = new DataSource.Builder()
.setAppPackageName(context.getPackageName())
.setDataType(DataType.TYPE_DISTANCE_DELTA)
.setName("App - step count")
.setType(DataSource.TYPE_RAW)
.build();
DataSource caloriesDataSource = new DataSource.Builder()
.setAppPackageName(context.getPackageName())
.setDataType(DataType.TYPE_CALORIES_EXPENDED)
.setName("App - step count")
.setType(DataSource.TYPE_RAW)
.build();
// create data points
DataSet dSteps = DataSet.create(stepsDataSource);
DataPoint pSteps = dSteps.createDataPoint().setTimeInterval(steps.getStartDate(), endTime, TimeUnit.MILLISECONDS);
pSteps.getValue(Field.FIELD_STEPS).setInt(Math.round(steps.getMeasurement()));
dSteps.add(pSteps);
DataSet dDistance = DataSet.create(distanceDataSource);
DataPoint pDistance = dDistance.createDataPoint().setTimeInterval(steps.getStartDate(), endTime, TimeUnit.MILLISECONDS);
float distanceKm = UnitConvertUtil.convertKmFromMile(distance.getMeasurement());
pDistance.getValue(Field.FIELD_DISTANCE).setFloat(distanceKm);
dDistance.add(pDistance);
DataSet dCalories = DataSet.create(caloriesDataSource);
DataPoint pCalories = dCalories.createDataPoint().setTimeInterval(steps.getStartDate(), endTime, TimeUnit.MILLISECONDS);
pCalories.getValue(Field.FIELD_CALORIES).setFloat(98);
dCalories.add(pCalories);
SessionInsertRequest insertRequest = new SessionInsertRequest.Builder()
.setSession(session)
.addDataSet(dCalories)
.build();
Fitness.getSessionsClient(context, Objects.requireNonNull(
GoogleSignIn.getLastSignedInAccount(context))).insertSession(
insertRequest).addOnCompleteListener(
task -> {
if (task.isSuccessful()) {
Log.d(TAG, "SUCCESS ACTIVITY");
} else {
Log.d(TAG, "FAILURE ACTIVITY");
}
});
Я использую приведенный выше код для записи данных в Google Fit. Вставка прошла успешно и занесена в журналы приложений Google Fit. Но при нажатии на активность в Google Fit происходит сбой приложения Fit. Кто-нибудь может мне помочь?