我正在创建可以使用google fit api的应用程序。 我想获得谷歌适合的所有活动(动作)。这里是google fit Reference中的活动列表。
被修改
我知道如何获取用户执行的活动的方式,但我想要完整的google fit API中可用的活动列表(不仅是用户执行的活动,需要整个活动列表),例如列表可在以上链接中找到。
答案 0 :(得分:2)
答案 1 :(得分:1)
在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健身应用。使用它一段时间后,您将在Google Fit数据库中获得一些真实数据。
编辑:
如果我正确地得到您编辑的问题,那么您需要类似以下代码的内容。 请注意,我在我自己的应用程序中使用此功能,该应用程序列出了Google Fit Andorid应用程序记录的活动。 我不确定它是否会列出其他活动,例如其他应用程序记录的自定义数据类型。
从Google健身中请求“活动”(如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
*/
}
}
}
}
});
就像我说的那样对我有用 - 在我自己的应用程序中,我列出了Google Fit app for Android记录的活动(以及他们的类型,即步行,跑步等)。
答案 2 :(得分:0)
希望这可以帮助其他人...
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);
}
}