通过Google Fit Api检索的步数与Google健身官方应用中显示的步数不符

Tho*_*mas 12 android google-fit-sdk google-fit

我开发了一个需要显示每日步数的应用程序.为此,我使用了Google Fit SDK中提供的API.

一切似乎都正常,但我得到的步数与Google Fit官方应用程序中显示的步数不匹配.

例如,当Google Fit App显示2367步时,我会获得2308步.

是否有一个原因?有没有人有同样的问题?有人有线索吗?

Tho*_*mas 26

我找到了解决方案.

Fit应用程序在步骤之上执行一些额外的处理.当没有记录时,它根据活动估计步骤.

如果它可以帮助某人:您需要使用com.google.android.gms包的自定义DataSource

DataSource ESTIMATED_STEP_DELTAS = new DataSource.Builder()
            .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
            .setType(DataSource.TYPE_DERIVED)
            .setStreamName("estimated_steps")
            .setAppPackageName("com.google.android.gms")
            .build();
Run Code Online (Sandbox Code Playgroud)

并在您的聚合方法中使用此方法,如下所示:

DataReadRequest readRequest = new DataReadRequest.Builder()
            .aggregate(ESTIMATED_STEP_DELTAS, DataType.AGGREGATE_STEP_COUNT_DELTA)
            .bucketByTime(1, TimeUnit.DAYS)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .build();
Run Code Online (Sandbox Code Playgroud)

  • 我仍然没有得到相同的值,大多数日子返回的值比 Google Fit 报告的要多!它实际上比示例中显示的方式更不准确。 (2认同)