为什么Google Fit距离匹配适合应用?

时间:2018-01-13 22:46:31

标签: android google-fit google-fit-sdk

google fit faq声明为了匹配官方google fit app的距离和步长值,我们应该使用以下数据请求

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)
       .aggregate(DataType.TYPE_DISTANCE_DELTA, DataType.AGGREGATE_DISTANCE_DELTA)
       .aggregate(DataType.TYPE_CALORIES_EXPENDED, DataType.AGGREGATE_CALORIES_EXPENDED)
       .aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)
       .bucketByTime(1, TimeUnit.DAYS)
       .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
       .build();

以上内容会返回正确的步数(与Google健身应用匹配)但返回的距离始终与官方Google健身应用中显示的距离不同。

我尝试使用DataSource streamName构建类似的merge_distance_delta距离,这会返回与Google https://fit.google.com/u/0/

上显示的距离相同的距离
 DataSource ESTIMATED_DISTANCE_DELTAS =   DataSource.Builder()
                        .setDataType(DataType.TYPE_DISTANCE_DELTA)
                        .setType(DataSource.TYPE_DERIVED)
                        .setStreamName("merge_distance_delta")
                        .setAppPackageName("com.google.android.gms")
                        .build()

使用上述数据源始终与https://fit.google.com/u/0/上显示的内容相匹配,有时与官方google fit应用相匹配。

谷歌适合云的同步似乎是随机的,没有办法强制它,所以如果谷歌适合的应用程序记录这个距离,有没有办法弄清楚它如何计算距离,为什么是它与中止的不同     DataType.TYPE_STEP_COUNT_DELTA

我是否可以使用特定的streamName来获得与google fit应用相同的距离?

0 个答案:

没有答案