Intereting Posts
Есть ли способ остановить добавление запятых Mobile Safari в числовые поля в HTML-формах? Веб-сервис с KSOAP Текст ввода AlertDialog Можем ли мы установить ОС Android на любой Windows Phone и наоборот, а также с iPhone и наоборот? Как вести трансляцию с Android Мобильные данные и GPS ON / OFF программно – Android выше 5.0 тоже Я получаю намерение INSTALL_REFERRER из магазина приложений amazon? Как обновить / понизить подписки в Android InAppBilling? Как защитить фоновое обслуживание / аварийные сигналы, которые нужно убить в недавно запущенных устройствах в настраиваемых ОС, таких как oppo – coloros, vivo-funtouch os, Xiomi-MIUI os? Клиент службы WSDL / SOAP для Android Как запускает доступ к пакету значков? Панель кнопок Android внизу и просмотр прокрутки с диалоговой темой Отладка уже запущенного приложения без перезагрузки Не нажимайте кнопку на передний план при нажатии Parse.com – Push дублируется после переустановки приложения

Добавить / прочитать вес и высоту в GoogleFit? Android

Google, я получил этот код, чтобы вставить DataType.TYPE_STEP_COUNT_DELTA . Но как вставить TYPE_HEIGHT AND TYPE_WEIGHT с помощью Android

  com.google.android.gms.common.api.Status insertStatus = Fitness.HistoryApi.insertData(mClient, dataSet) .await(1, TimeUnit.MINUTES); 

Чтобы вставить данные, вам необходимо создать новый объект DataSet для высоты и веса.

Я создал метод, чтобы получить объект DataSet с необходимыми параметрами для запроса.

 /** * This method creates a dataset object to be able to insert data in google fit * @param dataType DataType Fitness Data Type object * @param dataSourceType int Data Source Id. For example, DataSource.TYPE_RAW * @param values Object Values for the fitness data. They must be int or float * @param startTime long Time when the fitness activity started * @param endTime long Time when the fitness activity finished * @param timeUnit TimeUnit Time unit in which period is expressed * @return */ private DataSet createDataForRequest(DataType dataType, int dataSourceType, Object values, long startTime, long endTime, TimeUnit timeUnit) { DataSource dataSource = new DataSource.Builder() .setAppPackageName(mAppId) .setDataType(dataType) .setType(dataSourceType) .build(); DataSet dataSet = DataSet.create(dataSource); DataPoint dataPoint = dataSet.createDataPoint().setTimeInterval(startTime, endTime, timeUnit); if (values instanceof Integer) { dataPoint = dataPoint.setIntValues((Integer)values); } else { dataPoint = dataPoint.setFloatValues((Float)values); } dataSet.add(dataPoint); return dataSet; } 

Затем вам нужно сделать что-то вроде этого:

  DataSet weightDataSet = createDataForRequest( DataType.TYPE_WEIGHT, // for height, it would be DataType.TYPE_HEIGHT DataSource.TYPE_RAW, value, // weight in kgs startTime, // start time endTime, // end time timeUnit // Time Unit, for example, TimeUnit.MILLISECONDS ); com.google.android.gms.common.api.Status weightInsertStatus = Fitness.HistoryApi.insertData(mClient, weightDataSet ) .await(1, TimeUnit.MINUTES); 

Это очень полезно, если вы читаете документ Google Fit . Там вы можете прочитать дополнительную информацию о типах данных

Надеюсь, это поможет ^^

 private DataSet createDataForRequest(DataType dataType ,float dataSourceType ,int values ,long startTime, long endTime, TimeUnit timeUnit) { DataSource dataSource = new DataSource.Builder() .setAppPackageName(this) .setDataType(dataType) .setType(DataSource.TYPE_RAW) .build(); DataSet dataSet = DataSet.create(dataSource); DataPoint dataPoint = dataSet.createDataPoint().setTimeInterval(startTime, endTime, timeUnit); float weight = Float.parseFloat(""+values); dataPoint = dataPoint.setFloatValues(weight); dataSet.add(dataPoint); return dataSet; } // to post data Calendar cal = Calendar.getInstance(); Date now = new Date(); cal.setTime(now); long endTime = cal.getTimeInMillis(); cal.add(Calendar.DAY_OF_YEAR, -1); long startTime = cal.getTimeInMillis(); DataSet weightDataSet = createDataForRequest( DataType.TYPE_WEIGHT, // for height, it would be DataType.TYPE_HEIGHT DataSource.TYPE_RAW, 56, // weight in kgs startTime, // start time endTime, // end time TimeUnit.MINUTES // Time Unit, for example, TimeUnit.MILLISECONDS ); com.google.android.gms.common.api.Status weightInsertStatus = Fitness.HistoryApi.insertData(mClient, weightDataSet ) .await(1, TimeUnit.MINUTES); // Before querying the data, check to see if the insertion succeeded. if (!weightInsertStatus.isSuccess()) { Log.i(TAG, "There was a problem inserting the dataset."); return null; } // At this point, the data has been inserted and can be read. Log.i(TAG, "Data insert was successful!"); // I'm getting : There was a problem inserting the dataset.