Получение пустых значений из GoogleFit API - сердечный ритм - PullRequest
0 голосов
/ 15 января 2020

        long startDateInMS = dateUTCToMillisecs(startDate);
        long endDateInMS = dateUTCToMillisecs(endDate);

        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

        WritableArray results = Arguments.createArray();
        DataSource DS = new DataSource.Builder()
                .setDataType(DataType.TYPE_HEART_RATE_BPM)
                .setType(DataSource.TYPE_DERIVED)
                .setStreamName("heart_rate")
                .setAppPackageName("com.google.android.gms")
                .build();

        final DataReadRequest req = new DataReadRequest.Builder()
                .aggregate(DS, DataType.AGGREGATE_HEART_RATE_SUMMARY)
                .bucketByTime(1, TimeUnit.DAYS)
                .setTimeRange(startDateInMS, endDateInMS, TimeUnit.MILLISECONDS)
                .build();


        GoogleSignInAccount googleSignInAccount = GoogleSignIn.getLastSignedInAccount(context);

        Fitness.getHistoryClient(context, googleSignInAccount).readData(req).addOnSuccessListener(new OnSuccessListener<DataReadResponse>() {
            @Override
            public void onSuccess(DataReadResponse dataReadResponse) {

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
            }
        }).addOnCompleteListener(new OnCompleteListener<DataReadResponse>() {
            @Override
            public void onComplete(@NonNull Task<DataReadResponse> task) {

            }
        });

Запрос выполняется успешно, но aggregated_heart_data массивы пусты, хотя у меня есть значения сердечного ритма в GoogleFit App

** У меня есть разрешения BODY_SENSORS и разрешения на местоположение включены **

1 Ответ

0 голосов
/ 16 января 2020

Похоже, вы неправильно указали имя пакета. Это имя пакета поставщика данных. Удалите имя пакета из вашего запроса данных.

Ваш источник запроса данных должен выглядеть как

DataSource DS = new DataSource.Builder()
            .setDataType(DataType.TYPE_HEART_RATE_BPM)
            .setType(DataSource.TYPE_DERIVED)
            .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...