Можно ли добавить простое мероприятие, например, езда на велосипеде с указанием времени и калорий из моего приложения для Android? Я могу подключиться к моей учетной записи Google, но не знаю, как добавить простую деятельность, такую как езда на велосипеде.Google fit add activity programatically
1
A
ответ
0
0
Да здесь это код, который работает для меня .. проверить это
private SessionInsertRequest insertFitnessSession(ExerciseBean bean) {
/*
* Distance Data source
*/
DataSource distance = new DataSource.Builder()
.setAppPackageName("com.package")
.setDataType(DataType.TYPE_DISTANCE_DELTA)
.setType(DataSource.TYPE_RAW).build();
DataSet distanceDataSet = DataSet.create(distance);
DataPoint distanceDataPoint = DataPoint.create(distance)
.setTimeInterval(bean.getStartTime(), bean.getEndTime(), TimeUnit.MILLISECONDS);
distanceDataPoint.getValue(Field.FIELD_DISTANCE).setFloat((float)bean.getEx_distance());
distanceDataSet.add(distanceDataPoint);
/*
* Steps Data source
*/
DataSource steps = new DataSource.Builder()
.setAppPackageName("com.package")
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setType(DataSource.TYPE_RAW).build();
DataSet stepsDataSet = DataSet.create(steps);
DataPoint stepsDataPoint = DataPoint.create(steps).setTimeInterval(
bean.getStartTime(), bean.getEndTime(), TimeUnit.MILLISECONDS);
stepsDataPoint.getValue(Field.FIELD_STEPS).setInt(bean.getSteps());
stepsDataSet.add(stepsDataPoint);
/*
* Calory Data source
*/
DataSource calory = new DataSource.Builder()
.setAppPackageName("com.package")
.setDataType(DataType.TYPE_CALORIES_EXPENDED)
.setType(DataSource.TYPE_RAW).build();
DataSet calDataSet = DataSet.create(calory);
DataPoint calDataPoint = DataPoint.create(calory).setTimeInterval(
bean.getStartTime(), bean.getEndTime(), TimeUnit.MILLISECONDS);
calDataPoint.getValue(Field.FIELD_CALORIES).setFloat((float)bean.getEx_calories());
calDataSet.add(calDataPoint);
/*
* Activity data source
*/
DataSource acSource = new DataSource.Builder()
.setAppPackageName("com.package")
.setDataType(DataType.TYPE_ACTIVITY_SEGMENT)
.setType(DataSource.TYPE_DERIVED).build();
DataSet dataSet = DataSet.create(acSource);
DataPoint dataPoint = DataPoint.create(acSource).setTimeInterval(bean.getStartTime(),bean.getEndTime(), TimeUnit.MILLISECONDS);
dataPoint.getValue(Field.FIELD_ACTIVITY).setActivity(FitnessActivities.BASKETBALL);
//dataPoint.getValue(Field.FIELD_DURATION).setInt(103434);// In milisecond
dataSet.add(dataPoint);
/*
* DataSource acSource = new DataSource.Builder()
* .setAppPackageName("com.package")
* .setDataType(DataType.AGGREGATE_ACTIVITY_SUMMARY)
* .setType(DataSource.TYPE_DERIVED).build(); DataSet dataSet =
* DataSet.create(acSource); DataPoint dataPoint =
* DataPoint.create(acSource).setTimeInterval(startTime, endTime,
* TimeUnit.MILLISECONDS);
* dataPoint.getValue(Field.FIELD_ACTIVITY).setActivity
* (FitnessActivities.CRICKET);
* dataPoint.getValue(Field.FIELD_DURATION).setInt(103434);// In
* milisecond dataSet.add(dataPoint);
*/
Session session = new Session.Builder().setName("SAMPLE_SESSION_NAME")
.setDescription("activity description")
.setIdentifier("UniqueIdentifierHere")
.setActivity(FitnessActivities.CRICKET)
.setStartTime(bean.getStartTime(), TimeUnit.MILLISECONDS)
.setEndTime(bean.getEndTime(), TimeUnit.MILLISECONDS)
.build();
// Build a session insert request
SessionInsertRequest insertRequest = new SessionInsertRequest.Builder()
.setSession(session)
.addDataSet(dataSet).addDataSet(calDataSet)
.addDataSet(stepsDataSet).addDataSet(distanceDataSet).build();
return insertRequest;
}
, а затем просто вставить его. Если вам не нужно расстояние, калории и ступени, вы можете пропустить набор данных из этих
SessionInsertRequest insertRequest = insertFitnessSession(bean);
com.google.android.gms.common.api.Status insertStatus = Fitness.SessionsApi
.insertSession(fitnessClient, insertRequest).await(1,
TimeUnit.MINUTES);
if (insertStatus.isSuccess()) {
Log.e("Activity", "Inserted");
} else {
Log.e("Activity", "inserted failed");
}
Смежные вопросы
- 1. arraycontroller nsmutablearray add programatically
- 2. add constraints programatically swift
- 3. Angular2 add/remove class programatically
- 4. cocoa osx add nstextfields programatically
- 5. Клиент Google Fit API
- 6. Получение данных Google Fit, соответствующих Google Fit
- 7. add button programatically in if statement
- 8. Datagrid image column add programatically wpf
- 9. Создание групп google programatically
- 10. Google Fit API: получить расстояние от google fit
- 11. Нужно ли нам приложение Google Fit для Google Fit API?
- 12. Использование Google Fit Api
- 13. Google Fit Step Count
- 14. Google fit padometer
- 15. Google диаграммы не Fit
- 16. Google Fit Удалить dataSource?
- 17. Google Fit API Войти Обязательно
- 18. Шаг Счетчик API Google FIT
- 19. Ошибка ложной ошибки Google Fit 5015?
- 20. DataSource.getAppPackageName() всегда возвращает «com.google.android.gms» в Google Fit
- 21. Приложение Google Google Fit не работает
- 22. Android Google Fit onConnectionFailed() SIGN_IN_REQUIRED
- 23. Google Map Zoom To Fit
- 24. Ограничение истории API Google Fit?
- 25. Нечеткий Google fit step counter
- 26. Google Fit Custom Data Type
- 27. Калории для сеанса - google fit
- 28. Google fit Задержка регистрации API
- 29. Google fit API в java
- 30. Google Fit API История активности
Для «деятельности» я не имею в виду активность Android! Я имею в виду подгонку Google ... – user3805317