android - 通过 Google Fit Api 检索的步数与 Google Fit 官方应用程序中显示的步数不匹配

标签 android google-fit google-fit-sdk

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

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

例如,当 Google Fit 应用程序显示 2367 步时,我得到 2308 步。

这是有原因的吗?有没有人有同样的问题? 有人知道吗?

最佳答案

我找到了解决方案。

健身应用程序会在这些步骤之上进行一些额外的处理。当没有记录时,它会根据 Activity 估计步数。

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

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();

然后像这样在你的聚合方法中使用它:

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

关于android - 通过 Google Fit Api 检索的步数与 Google Fit 官方应用程序中显示的步数不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414386/

相关文章:

java - NDK 对比 JAVA 性能

android - 整个应用程序生命周期中的 getWritableDatabase() 实例

java - PendingIntent 类型中的 getActivity 方法不适用于争论

java - 无法使用智能手环 2 从 Google Fit API 获取心率数据

dart - 如何使用传感器 flutter 包开发计步器?

java - 如何使用 android 4.0 日历提供程序 API 选择要从中提取事件的日历?

java - 访问 Android Wear Fit 数据

google-play-services - 无法连接到 Google 健身

Android Wear 和 Google Fit : How to force update of datasets between smartwatch and smartphone?

android - 即使我们只使用只读模式,我是否必须在 4 月 27 日之前更新 Google Fitness SDK v20?