Google Fit SDK возвращает набор данных с пустыми точками данных - PullRequest
0 голосов
/ 19 мая 2018

У меня проблемы с Google Fit SDK, когда я пытался получить историю шагов из SDK.Хотя я вижу количество возвращаемых сегментов, включая наборы данных.Однако все наборы данных вообще не содержат никаких точек данных, хотя там был указан счетчик шагов в моем приложении Google Fit.

Вот мой код.

Calendar calendar = Calendar.getInstance(new Locale("en", "US", "POSIX"));
    calendar.setTime(Utilities.generateDate(new Date(), Utilities.DATE_FORMAT_F));
    long endTime = calendar.getTimeInMillis();
    calendar.add(Calendar.YEAR, -1);
    long startTime = calendar.getTimeInMillis();

    DataSource ESTIMATED_STEP_DELTAS = new DataSource.Builder()
            .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
            .setType(DataSource.TYPE_RAW)
            .setStreamName("estimated_steps")
            .setAppPackageName("com.google.android.gms")
            .build();
    DataReadRequest readRequest = new DataReadRequest.Builder()
            .aggregate(ESTIMATED_STEP_DELTAS,    DataType.AGGREGATE_STEP_COUNT_DELTA)
            .bucketByTime(1, TimeUnit.DAYS)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .enableServerQueries()
            .build();


    Fitness.getHistoryClient(mContext, account)
            .readData(readRequest)
            .addOnSuccessListener(new OnSuccessListener<DataReadResponse>() {
                @Override
                public void onSuccess(DataReadResponse dataReadResponse) {
                    printData(dataReadResponse);
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.e(TAG, "onFailure()", e);
                }
            })
            .addOnCompleteListener(new OnCompleteListener<DataReadResponse>() {
                @Override
                public void onComplete(@NonNull Task<DataReadResponse> task) {
                    printData(task.getResult());
                }
            });

Следовательно, я былинтересно, какую часть Google Fit SDK я пропустил.Любая помощь будет оценена.Кроме того, обратите внимание, что я подписываюсь на Google Fit SDK, и мое приложение Google Fit действительно имеет историю шагов.

Спасибо.

1 Ответ

0 голосов
/ 21 мая 2018

Можете ли вы изменить свой запрос с

DataReadRequest readRequest = new DataReadRequest.Builder()
            .aggregate(ESTIMATED_STEP_DELTAS, DataType.AGGREGATE_STEP_COUNT_DELTA)
            .bucketByTime(1, TimeUnit.DAYS)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .enableServerQueries()
            .build();

на

DataReadRequest readRequest = new DataReadRequest.Builder()
            .aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
            .bucketByTime(1, TimeUnit.DAYS)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .enableServerQueries()
            .build();

т.е. вместо передачи источника данных передайте тип данных.

...