簡體   English   中英

Google Fit不提供步數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM