2016-05-18 11 views
0

私はAndroidアプリ内でGoogleからステップカウントを取得しようとしています。 Googleアカウントを選択すると、onConnected()にアプリが正常に呼び出されます。 Google APIコンソールに正しいSHA1フィンガープリントとパッケージ名を設定しました。したがって、コンソールには何も問題はありません。Google Fitはステップカウントを与えません

しかし、これは決してonDataPoint()に襲われることはありません。

onConnectedの後にコードを貼り付けています。

DataSourcesRequest dataSourceRequest = new DataSourcesRequest.Builder() 
     .setDataTypes(DataType.TYPE_STEP_COUNT_CUMULATIVE) 
     .setDataSourceTypes(DataSource.TYPE_RAW) 
     .build(); 

ResultCallback<DataSourcesResult> dataSourcesResultCallback = new ResultCallback<DataSourcesResult>() { 
    @Override 
    public void onResult(DataSourcesResult dataSourcesResult) { 
     for (DataSource dataSource : dataSourcesResult.getDataSources()) { 
      if (DataType.TYPE_STEP_COUNT_CUMULATIVE.equals(dataSource.getDataType())) { 

       registerFitnessDataListener(dataSource, DataType.TYPE_STEP_COUNT_CUMULATIVE); 

      } 
     } 
    } 
}; 

Fitness.SensorsApi.findDataSources(mApiClient, dataSourceRequest) 
     .setResultCallback(dataSourcesResultCallback); 

、その後

private void registerFitnessDataListener(DataSource dataSource, DataType dataType) { 
Log.e("GoogleFit", "registerFitnessDataListener"); 
SensorRequest request = new SensorRequest.Builder() 
    .setDataSource(dataSource) 
    .setDataType(dataType) 
    .setSamplingRate(3, TimeUnit.SECONDS) 
    .build(); 


Fitness.SensorsApi.add(mApiClient, request, this) 
    .setResultCallback(new ResultCallback<Status>() { 
     @Override 
     public void onResult(Status status) { 
      if (status.isSuccess()) { 
       Log.e("GoogleFit", "SensorApi successfully added"); 
      } 
     } 
    }); 
} 

誰かがそれがonDataPoint()メソッドの内部で打たれていない理由で私を助けることはできますか?

+0

私のdataSourcesResultCallbackがDataSourceResult {status = Status {statusCode = SUCCESS、resolution = null}、data sets = []}を返していることがわかりました。しかし、決して(データソースdataSource:dataSourcesResult.getDataSources()){} forループ – Dchaser88

+0

あなたの 'onResult(DataSourcesResult dataSourcesResult)'の中にログを入れてみましたか?それが実際にそこに着きますか?または 'dataSourcesResult.getDataSources()'の数をチェックしますか? –

+1

こんにちは、返信いただきありがとうございます。 DataSourcesRequestを構築するときにDataSource.TYPE_DERIVEDを使用して解決しました。 – Dchaser88

答えて

0

DataSourcesRequestを構築するときにDataSource.TYPE_DERIVEDを使用して解決しました。これは、Nexus 7がハードウェアセンサーではなくソフトウェアセンサーを搭載しているテストデバイスの結果として発生したと考えられます。その結果、私はTYPE_STEP_COUNT_DELTAの結果を得ることができません。

+0

クール..これはまた、http://www.gadgetsaint.com/android/update-calories-steps-google-fit-api/#.WPFGK1N97BI – ASP

関連する問題