Сессия Api, вызывающая сбой приложения Google Fit - PullRequest
0 голосов
/ 30 октября 2018
    Session session = new Session.Builder()
                                .setName("Name")
                                .setDescription("Data gathered from App")
                                .setActivity(FitnessActivities.WALKING)
                                .setStartTime(steps.getStartDate(), TimeUnit.MILLISECONDS)
                                .setEndTime(endTime, TimeUnit.MILLISECONDS)
                                .build();

                        DataSource stepsDataSource = new DataSource.Builder()
                                .setAppPackageName(context.getPackageName())
                                .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
                                .setName("App - step count")
                                .setType(DataSource.TYPE_RAW)
                                .build();

                        DataSource distanceDataSource = new DataSource.Builder()
                                .setAppPackageName(context.getPackageName())
                                .setDataType(DataType.TYPE_DISTANCE_DELTA)
                                .setName("App - step count")
                                .setType(DataSource.TYPE_RAW)
                                .build();

                        DataSource caloriesDataSource = new DataSource.Builder()
                                .setAppPackageName(context.getPackageName())
                                .setDataType(DataType.TYPE_CALORIES_EXPENDED)
                                .setName("App - step count")
                                .setType(DataSource.TYPE_RAW)
                                .build();

                        // create data points
                        DataSet   dSteps = DataSet.create(stepsDataSource);
                        DataPoint pSteps = dSteps.createDataPoint().setTimeInterval(steps.getStartDate(), endTime, TimeUnit.MILLISECONDS);
                        pSteps.getValue(Field.FIELD_STEPS).setInt(Math.round(steps.getMeasurement()));
                        dSteps.add(pSteps);

                        DataSet   dDistance  = DataSet.create(distanceDataSource);
                        DataPoint pDistance  = dDistance.createDataPoint().setTimeInterval(steps.getStartDate(), endTime, TimeUnit.MILLISECONDS);
                        float     distanceKm = UnitConvertUtil.convertKmFromMile(distance.getMeasurement());
                        pDistance.getValue(Field.FIELD_DISTANCE).setFloat(distanceKm);
                        dDistance.add(pDistance);

                        DataSet   dCalories = DataSet.create(caloriesDataSource);
                        DataPoint pCalories = dCalories.createDataPoint().setTimeInterval(steps.getStartDate(), endTime, TimeUnit.MILLISECONDS);
                        pCalories.getValue(Field.FIELD_CALORIES).setFloat(98);
                        dCalories.add(pCalories);

                        SessionInsertRequest insertRequest = new SessionInsertRequest.Builder()
                                .setSession(session)
                                .addDataSet(dCalories)

                                .build();

                        Fitness.getSessionsClient(context, Objects.requireNonNull(
                                GoogleSignIn.getLastSignedInAccount(context))).insertSession(
                                insertRequest).addOnCompleteListener(
                                task -> {
                                    if (task.isSuccessful()) {
                                        Log.d(TAG, "SUCCESS ACTIVITY");
                                    } else {
                                        Log.d(TAG, "FAILURE ACTIVITY");
                                    }
                                });

Я использую приведенный выше код для записи данных в Google Fit. Вставка прошла успешно и занесена в журналы приложений Google Fit. Но при нажатии на активность в Google Fit происходит сбой приложения Fit. Кто-нибудь может мне помочь?

...