[英]Google Fit does not give step count
我試圖從Google Fit的Android應用程序中獲取步驟計數。 選擇Google帳戶后,應用程序成功調用到onConnected()
。 我也為Google API控制台配置了正確的SHA1指紋和軟件包名稱。 因此,控制台不會有任何錯誤。
但是,它永遠不會受到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()
方法沒有被擊中的原因嗎?
我在構建DataSourcesRequest時通過使用DataSource.TYPE_DERIVED解決了它。 我認為發生這種情況的原因是我的測試設備Nexus 7具有軟件傳感器而非硬件傳感器。 結果,我無法獲得TYPE_STEP_COUNT_DELTA的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.