如何识别 google fit activity 是手动输入还是传感器跟踪?
How to identify google fit activity is entered manually or tracked by sensor?
我们正在开发一个 Android 应用程序,它查询 Google Fit API 以检索步数、卡路里和距离参数。我们想查询不是由用户手动输入的活动(或以某种方式识别这些 activity 并忽略它们)。
用户可以手动加载步行、运行 等 activity,我们希望忽略此类活动。我们查看了历史 APIs 和 Activity 字段,但似乎无法确定活动是手动记录还是由其他应用程序或 phone 传感器或可穿戴设备自动添加。
有人知道获取用户未手动记录的活动的方法吗?
更新
查看 Google Fit 开发者社区中的以下主题,它可能会对某些人有所帮助
https://plus.google.com/u/0/105650643673857572241/posts/fET6zKYFq4K
这可能不是识别传感器检测到的步骤的正确方法,但通过一些测试,它几乎与我认为由传感器记录的步骤相匹配。
DataSource ds = DataPoint.getOriginalDataSource()
字符串数据流 = ds.getStreamIdentifier()
如果 "dataStream" 字符串包含 soft_step_delta,那么我们可以假设步数是从 phone 传感器记录的。我还没有用可穿戴设备测试它。
我按照上面 Amit 的建议进行了尝试,但是
DataPoint.getOriginalDataSource().getStreamIdentifier();
/*I also tried but could not achieve what I wanted*/
DataPoint.getOriginalDataSource().getStreamName();
DataPoint.getOriginalDataSource().getAppPackageName();
至少在检索数据时对我不起作用。我最终使用 readDailyTotalFromLocalDevice() 如下所示,以便仅捕获设备捕获的步骤。
Fitness.HistoryApi.readDailyTotalFromLocalDevice(mApiClient, DataType.TYPE_STEP_COUNT_DELTA).await(1, TimeUnit.MINUTES)
我与一些避免在其应用程序中手动输入的应用程序进行了交叉检查,上面的函数提供的计数完全相同。
注意:如果用户有多个设备并在所有设备上使用该应用程序,readDailyTotalFromLocalDevice() 将有不同每个设备的值,因为该函数只负责返回设备特定数据。
我们正在开发一个 Android 应用程序,它查询 Google Fit API 以检索步数、卡路里和距离参数。我们想查询不是由用户手动输入的活动(或以某种方式识别这些 activity 并忽略它们)。
用户可以手动加载步行、运行 等 activity,我们希望忽略此类活动。我们查看了历史 APIs 和 Activity 字段,但似乎无法确定活动是手动记录还是由其他应用程序或 phone 传感器或可穿戴设备自动添加。
有人知道获取用户未手动记录的活动的方法吗?
更新
查看 Google Fit 开发者社区中的以下主题,它可能会对某些人有所帮助
https://plus.google.com/u/0/105650643673857572241/posts/fET6zKYFq4K
这可能不是识别传感器检测到的步骤的正确方法,但通过一些测试,它几乎与我认为由传感器记录的步骤相匹配。
DataSource ds = DataPoint.getOriginalDataSource()
字符串数据流 = ds.getStreamIdentifier()
如果 "dataStream" 字符串包含 soft_step_delta,那么我们可以假设步数是从 phone 传感器记录的。我还没有用可穿戴设备测试它。
我按照上面 Amit 的建议进行了尝试,但是
DataPoint.getOriginalDataSource().getStreamIdentifier();
/*I also tried but could not achieve what I wanted*/
DataPoint.getOriginalDataSource().getStreamName();
DataPoint.getOriginalDataSource().getAppPackageName();
至少在检索数据时对我不起作用。我最终使用 readDailyTotalFromLocalDevice() 如下所示,以便仅捕获设备捕获的步骤。
Fitness.HistoryApi.readDailyTotalFromLocalDevice(mApiClient, DataType.TYPE_STEP_COUNT_DELTA).await(1, TimeUnit.MINUTES)
我与一些避免在其应用程序中手动输入的应用程序进行了交叉检查,上面的函数提供的计数完全相同。
注意:如果用户有多个设备并在所有设备上使用该应用程序,readDailyTotalFromLocalDevice() 将有不同每个设备的值,因为该函数只负责返回设备特定数据。