Данные соответствия Google не соответствуют приложению Google Fit, например DataType.TYPE_WORKOUT_EXERCISE - PullRequest
0 голосов
/ 10 марта 2019

Я могу читать данные Google Fit, используя историю API, но данные не возвращаются или не соответствуют официальному приложению Google Fit

например, когда я читаю сеанс DataType.TYPE_WORKOUT_EXERCISE, только может читать метку и время начала / окончания, но dataSet.getDataPoints () возвращает пустой массив, поэтому я не могу прочитать step_count / calories / distance и т. Д.

public static void readSessionsApiAllSessions(Context context) {

        SessionReadRequest readRequest = readFitnessSession();

        Fitness.getSessionsClient(context , GoogleSignIn.getLastSignedInAccount(context))
                .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");
                    }
                });

    }

    public static SessionReadRequest readFitnessSession() {
        Calendar cal = Calendar.getInstance();
        Date now = new Date();
        cal.setTime(now);
        long endTime = cal.getTimeInMillis();
        cal.add(Calendar.DAY_OF_YEAR, -2);
        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()
                .enableServerQueries()
                .build();
        // [END build_read_session_request]

        return readRequest;
    }
...