Google Fit Api过滤器手动添加了活动

时间:2015-08-20 13:22:34

标签: java android rest google-fit

Google Fit允许用户手动和以编程方式添加活动。是否可以从Android Api或REST Api过滤掉手动或程序添加的活动?

我只想查询在执行时实际跟踪和记录的活动。

2 个答案:

答案 0 :(得分:1)

根据文档没有正确的方法。但我找到了一些解决方案来识别Android API中的手动和自动跟踪活动。

DataSource ds = DataPoint.getOriginalDataSource()
String streamData = ds.getStreamIdentifier()

如果" streamData"包含" user_input",然后它假定活动是手动活动,它包含"详细"用于实际传感器记录的活动。

答案 1 :(得分:0)

我尝试了上述阿卜杜勒·汗(Abdul Khan)的建议,但

DataSource ds = DataPoint.getOriginalDataSource();
String streamData = ds.getStreamIdentifier();

/*I also tried but could not achieve what I wanted*/

String packageName = ds.getAppPackageName();
String streamIdentifier = ds.getStreamIdentifier();

至少在检索数据时对我不起作用。我最终使用了如下所示的 readDailyTotalFromLocalDevice()来捕获仅由设备捕获的步骤。

Fitness.HistoryApi.readDailyTotalFromLocalDevice(mApiClient, DataType.TYPE_STEP_COUNT_DELTA).await(1, TimeUnit.MINUTES)

我与某些应用进行了交叉检查,避免在其应用中进行手动输入,并且上述功能提供的计数完全相同。

注意:如果用户拥有多个设备,并且在所有设备上都使用该应用程序,则 readDailyTotalFromLocalDevice()对于每个设备都将具有不同的值,因为函数仅负责返回设备特定的数据。