Как выполнить все действия Google Fit за день

Я знаю, как получать различные данные из Google Fit, такие как шаги или калории, когда я специально подписываюсь на них. Однако как я могу получить все действия, которые выполнял пользователь, не зная, какие именно они сделали?

Также как я могу получить значения для таких действий, как подъем по лестнице? Он недоступен в классе DataType, образцы на веб-сайте разработчика Google показывают только шаги и калории. Спасибо


person danjar    schedule 15.06.2018    source источник


Ответы (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");
                }
            });

}
person danjar    schedule 18.06.2018