我正在创建可以使用 google fit api 的应用程序。我想获得 google fit 中可用的所有活动(运动)。这里是 google fit Reference中的活动列表。
已编辑
我知道如何获取用户执行的活动的方式,但是我想要 google fit API 中可用的完整活动列表(不仅是用户执行的活动,还需要完整的活动列表),例如上面的链接。
我正在创建可以使用 google fit api 的应用程序。我想获得 google fit 中可用的所有活动(运动)。这里是 google fit Reference中的活动列表。
已编辑
我知道如何获取用户执行的活动的方式,但是我想要 google fit API 中可用的完整活动列表(不仅是用户执行的活动,还需要完整的活动列表),例如上面的链接。
在 Android 上开始使用 Google Fit API 时遇到了类似的问题。
Google Fit 网站上有包含代码示例的视频以及更详细的 API 文档。
它对我帮助很大——https ://developers.google.com/fit/android/get-started
检查两个视频以及稍后如何保存和获取数据类型:
https://developers.google.com/fit/android/data-types
要获得一些可用数据,请在您的 Android 手机上安装 Google Fit 应用程序。使用它一段时间,然后您将在 Google Fit 数据库中获得一些真实数据。
编辑:
如果我正确地得到了您编辑的问题,那么您需要类似于以下代码的内容。请注意,我在我自己的应用程序中使用它,其中列出了由 Google Fit Andorid 应用程序记录的活动。我不确定它是否会列出其他活动,例如其他应用程序记录的自定义数据类型。
向 Google Fit 请求“活动”(如 STILL、RUNNING、WALKING):
DataReadRequest readRequest = new DataReadRequest.Builder()
.read(DataType.TYPE_ACTIVITY_SEGMENT)
// maybe you want to limit data to specific time range?
//.setTimeRange(today.startTime, today.endTime, TimeUnit.MILLISECONDS)
.build();
然后解析响应。解析时会有活动时间可用:
Fitness.HistoryApi.readData(mClient, readRequest).setResultCallback(new ResultCallback<DataReadResult>() {
@Override
public void onResult(DataReadResult dataReadResult) {
for (DataSet dataSet : dataReadResult.getDataSets()) {
for (DataPoint dataPoint : dataSet.getDataPoints()) {
DataType dataType = dataPoint.getDataType();
if (dataType.equals(DataType.TYPE_ACTIVITY_SEGMENT)) {
String activity = FitnessActivities.getValue(dataPoint);
/* process as needed */
/* the `activitity' string contains values as described here:
* https://developer.android.com/reference/com/google/android/gms/fitness/FitnessActivities.html
*/
}
}
}
}
});
就像我说的那样,它对我有用——在我自己的应用程序中,我列出了由适用于 Android 的 Google Fit 应用程序记录的活动(及其类型,即步行、跑步等)。
希望这可以帮助其他人......
List<Session> sessions = sessionReadResponse.getSessions();
for (Session session : sessions) {
dumpSession(session);
Log.i(TAG, "Activity Name: "+sessions.get(position).getActivity());
position++;
List<DataSet> dataSets = sessionReadResponse.getDataSet(session);
for (DataSet dataSet : dataSets) {
dumpDataSet(dataSet);
}
}