繁体   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