2017-02-09 13 views
0

Я работаю на получение данных частоты сердечных сокращений от Sony Band 2 (SWR12). Я хотел бы сделать это с помощью API Google Fit Sensors. Я следил за образцом и учебными пособиями от Google здесь: https://github.com/googlesamples/android-fit/blob/master/BasicSensorsApi/app/src/main/AndroidManifest.xmlПолучение сердечного ритма данных от Sony диапазона SWR12

Включив Fit API и создал токен аутентификации, теперь я могу прочитать местоположение устройства.

Однако, когда я изменить источник данных: .setDataTypes (DataType.AGGREGATE_HEART_RATE_SUMMARY) в приложение падает.

Любой, который ранее работал с Fit API и Sony Band, пожалуйста, помогите мне подключиться к группе.

ответ

0

мне удалось записать и прочитать сгруппированные данные с помощью следующего кода:

private void suscribeDataFitness(){ 
    Fitness.RecordingApi.subscribe(mApiClient, DataType.AGGREGATE_HEART_RATE_SUMMARY) 
      .setResultCallback(mSubscribeResultCallback); 

} 


private void readDataFitnessHistory() 
{ 
    // Setting a start and end date using a range of 1 week before this moment. 
    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(); 

    java.text.DateFormat dateFormat = getDateInstance(); 
    Log.d(TAG, "Range Start: " + dateFormat.format(startTime) + " Millis : " + startTime); 
    Log.d(TAG, "Range End: " + dateFormat.format(endTime) + " Millis : " + endTime); 

    final DataReadRequest readRequest = new DataReadRequest.Builder() 
      //.read(DataType.TYPE_STEP_COUNT_DELTA) 
      //.read(DataType.TYPE_HEART_RATE_BPM) 
      //.read(ESTIMATED_STEP_DELTAS) 
      .aggregate(DataType.AGGREGATE_HEART_RATE_SUMMARY) 
      .enableServerQueries() 
      .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 
      .bucketByTime(1, TimeUnit.HOURS) 
      .build(); 


    // Invoke the History API to fetch the data with the query and await the result of 
    // the read request. 
    DataReadResult dataReadResult = 
      Fitness.HistoryApi.readData(mApiClient, readRequest).await(1, TimeUnit.MINUTES); 
    showDataBuckets(dataReadResult); 

} 

final DataReadRequest readRequest = new DataReadRequest.Builder() 
      //.read(DataType.TYPE_STEP_COUNT_DELTA) 
      //.read(DataType.TYPE_HEART_RATE_BPM) 
      //.read(ESTIMATED_STEP_DELTAS) 
      .aggregate(DataType.AGGREGATE_HEART_RATE_SUMMARY) 
      .enableServerQueries() 
      .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 
      .bucketByTime(1, TimeUnit.HOURS) 
      .build(); 


private void showDataBuckets(DataReadResult dataReadResult) { 
    //Used for aggregated data 
    if (dataReadResult.getBuckets().size() > 0) { 
     Log.d(TAG,"History: "+ "Number of buckets: " + dataReadResult.getBuckets().size()); 
     for (Bucket bucket : dataReadResult.getBuckets()) { 
      List<DataSet> dataSets = bucket.getDataSets(); 
      for (DataSet dataSet : dataSets) { 
       showDataSet(dataSet); 
      } 
     } 
    } 
} 

Я надеюсь, что смогу помочь вам. A приветствие