5

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

已编辑

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

4

3 回答 3

3

Google Fit 活动列在FitnessActivity类中。

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

FitnessActivities.class.getFields()
于 2015-01-07T23:42:18.020 回答
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 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 应用程序记录的活动(及其类型,即步行、跑步等)。

于 2014-11-27T15:25:18.107 回答
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);
    }
}
于 2019-09-26T13:07:40.893 回答