Google Fit允许用户手动和以编程方式添加活动。是否可以从Android Api或REST Api过滤掉手动或程序添加的活动?
我只想查询在执行时实际跟踪和记录的活动。
答案 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()对于每个设备都将具有不同的值,因为函数仅负责返回设备特定的数据。