如何让所有谷歌适合活动进行一天

时间:2018-06-15 14:44:01

标签: android google-fit google-fit-sdk

我知道如何在专门订阅它们时从google Fit中获取各种数据,如步骤或卡路里。 但是,我怎样才能检索用户执行的所有活动,而不知道他们究竟做了哪些活动?

另外,我如何获得楼梯攀爬等活动的价值? 它在DataType类中不可用,Google开发者网站上的示例仅显示步数和卡路里。 感谢

1 个答案:

答案 0 :(得分:1)

我发现我只能使用Sessions API找到所有练习。

先克里特提出请求。

在:

.read(DataType.TYPE_WORKOUT_EXERCISE)

在这里很重要,可以进行所有锻炼。

    private SessionReadRequest readFitnessSession() {
    Calendar cal = Calendar.getInstance();
    Date now = new Date();
    cal.setTime(now);
    long endTime = cal.getTimeInMillis();
    cal.add(Calendar.WEEK_OF_YEAR, -1);
    long startTime = cal.getTimeInMillis();

    // Build a session read request
    SessionReadRequest readRequest = new SessionReadRequest.Builder()
            .setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS)
            .read(DataType.TYPE_WORKOUT_EXERCISE)
            .readSessionsFromAllApps()
            .build();
    // [END build_read_session_request]

    return readRequest;
}

阅读会话数据

    private void readSessionsApiAllSessions() {

    SessionReadRequest readRequest = readFitnessSession();

    Fitness.getSessionsClient(getActivity(), GoogleSignIn.getLastSignedInAccount(getActivity()))
            .readSession(readRequest)
            .addOnSuccessListener(new OnSuccessListener<SessionReadResponse>() {
                @Override
                public void onSuccess(SessionReadResponse sessionReadResponse) {
                    // Get a list of the sessions that match the criteria to check the result.
                    List<Session> sessions = sessionReadResponse.getSessions();
                    Log.i(TAG, "Session read was successful. Number of returned sessions is: "
                            + sessions.size());

                    for (Session session : sessions) {
                        // Process the session
                        dumpSession(session);

                        // Process the data sets for this session
                        List<DataSet> dataSets = sessionReadResponse.getDataSet(session);
                        for (DataSet dataSet : dataSets) {
                            dumpDataSet(dataSet);
                        }
                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.i(TAG, "Failed to read session");
                }
            });

}