从google fit api获取活动列表(移动)

时间:2014-11-27 04:56:33

标签: google-fit google-fit-sdk

我正在创建可以使用google fit api的应用程序。  我想获得谷歌适合的所有活动(动作)。这里是google fit Reference中的活动列表。

被修改

我知道如何获取用户执行的活动的方式,但我想要完整的google fit API中可用的活动列表(不仅是用户执行的活动,需要整个活动列表),例如列表可在以上链接中找到。

3 个答案:

答案 0 :(得分:2)

Google健身活动列在FitnessActivities课程中。

您可以使用以下方式以编程方式获取所有这些字段的列表:

FitnessActivities.class.getFields()

答案 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);
    }
}