2017-02-09 19 views
0

ソニーバンド2(SWR12)からの心拍データの取得に取り組んでいます。 Google Fit Sensors APIを使用してこれを行いたいと思います。 https://github.com/googlesamples/android-fit/blob/master/BasicSensorsApi/app/src/main/AndroidManifest.xmlソニーバンド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); 
      } 
     } 
    } 
} 

私は、私はあなたを助けることができると思います。 挨拶

関連する問題