谷歌健身会议标题不是"坚持"

时间:2017-08-10 19:24:08

标签: android google-fit

我的裁判手表使用以下代码创建Google健身会话:

        private void insertFitSession(final Game currentGame, final Period period,
                                  final long periodStartTime, final long periodEndTime) {
        //add the detailed Sensor data (using History API) if available
        boolean activityWasInserted = false;
        if (!RefWatchUtil.isRefWatchFree()) {
            //If there are speeds then we will insert an activity
            //4.5.09: Unfortunately mFitnessDataSets[] can have leftover data from a period where you did track fitness
            //So we had to replace with period-by-period dataSets
            activityWasInserted = (period.getFitnessDataSet(SPEED_LISTENER_IDX) != null)
                                    && !period.getFitnessDataSet(SPEED_LISTENER_IDX).isEmpty();
        }

        //create a Session in Google Fit for the period that just completed
        //(this happens even for Free)
        try {

            String sessionBaseName =  currentGame.getTitle();
            if (sessionBaseName.isEmpty()) sessionBaseName = currentGame.getLocation();
            if (sessionBaseName.isEmpty()) sessionBaseName = RefWatchUtil.timeMillisToDefaultShortDateTime(currentGame.getStartTimeMillis());

            final String sessionName = sessionBaseName +  ": " + String.format(getResources().getString(R.string.fitness_period_label), period.getPeriodNum());

            final Session.Builder fitnessSessionBuilder = new Session.Builder();
            fitnessSessionBuilder
                    .setName(sessionName)
                    .setIdentifier(sessionName)
                    .setDescription(mCurrentGame.getDescription())
                    .setStartTime(periodStartTime, TimeUnit.MILLISECONDS)
                    .setEndTime(periodEndTime, TimeUnit.MILLISECONDS);
            //If we're Free, then we don't have real fitness session data and just guess at Jogging
            // (also if we have no Activity data in Pro)
            if (RefWatchUtil.isRefWatchFree() || !activityWasInserted) {
                fitnessSessionBuilder.setActivity(FitnessActivities.RUNNING_JOGGING);
            }
            final Session fitSession = fitnessSessionBuilder.build();

            SessionInsertRequest insertRequest = new SessionInsertRequest.Builder()
                    .setSession(fitSession)
                    .build();

            Fitness.SessionsApi.insertSession(mFitnessApiClient, insertRequest)
                    .setResultCallback(new ResultCallback<Status>() {
                        @Override
                        public void onResult(@NonNull Status status) {
                            if (status.isSuccess()) {
                                Log.d(TAG, "Successfully inserted Session " + sessionName);
                            } else {
                                Log.d(TAG, "There was a problem inserting the session " + sessionName
                                        + ": " + status.getStatusCode() + " " + status.getStatusMessage());
                            }
                        }
                    });

        } catch (RuntimeException e){
            Log.e(TAG, "There was a runtime exception inserting the session: " + e.getLocalizedMessage());
        }

    }

请注意,sessionName默认为附加当前Period的Title,Location或Time。这一直很有效。

最近(上个月左右?)Fit会话被正确插入(我可以在日志中跟踪它),但名称并不坚持。相反,我得到了25分钟的跑步&#34;对于他们中的一些人,但不是全部。

有没有其他人通过Fit体验过这种覆盖?

0 个答案:

没有答案