【发布时间】:2015-11-29 03:51:19
【问题描述】:
我正在开发演示应用程序以使用 Google Fit 获取当前活动示例。我可以正确获得速度和距离。但是,尽管我处于同一状态,但它并没有非常频繁地返回“in_vehicle”或“biking”状态。找到相同的附加屏幕截图。我得到了 59.40KM/H(36.91 M/h) 的速度,当时它没有返回“in_vehicle”活动状态。
请提供相同的解决方案/反馈。
代码:
@Override
public void onDataPoint(DataPoint dataPoint) {
for (Field field : dataPoint.getDataType().getFields()) {
Value val = dataPoint.getValue(field);
if(field.getName().trim().toLowerCase().equals("activity"))
{
if(FitnessActivities.getName(Integer.parseInt(val.toString())).equals("biking"))
{
strState = "Cycling";
}
else if(FitnessActivities.getName(Integer.parseInt(val.toString())).equals("in_vehicle"))
{
strState = "Automotive";
}
else if(FitnessActivities.getName(Integer.parseInt(val.toString())).equals("walking"))
{
strState = "Walking";
}
else
{
strState = "Not Moving";
}
}
}
}
谢谢。
【问题讨论】:
-
一段代码我们会更好理解吗。
-
您应该编辑问题的标题和正文,以表明“活动”不是指“android.app.Activity”,而是指“健身活动”字符串。
-
您能否发布有关如何触发 Google API 发送此
DataPoint对象的代码?你这样做的方式似乎与我所知道的应该如何使用ActivityRecognitionApi相去甚远。您想要一个示例项目吗? -
@DerekFung :是的,示例项目会有所帮助。请做需要。
-
您可以在
onDataPoint中记录Log.i(TAG, "Detected DataPoint field: " + field.getName());和Log.i(TAG, "Detected DataPoint value: " + val);并更新值供我们查看吗?另请检查 BasicSampleAPI 示例项目 github.com/googlesamples/android-fit/tree/master/… 以查看您是否已遵循所有步骤
标签: android google-fit google-fit-sdk