Возврат клиентом Google Fit Sensor -3,0 BPM - PullRequest
0 голосов
/ 24 февраля 2020

Я использую Google Fit API, чтобы получить частоту сердечных сокращений. Я использую Sensor Client, но он всегда возвращает -3.0. Я добавил разрешение в манифесте и получил разрешение на вход в Google too.listener регистрируется, но всегда будет давать -3.0 , Я использую тип данных TYPE_HEART_RATE_BPM и источник данных TYPE_RAW.

private DataType dataType = DataType.TYPE_HEART_RATE_BPM;
    private int dataSource = DataSource.TYPE_RAW;
private void getFitnessData() {


        Fitness.getSensorsClient(this, GoogleSignIn.getLastSignedInAccount(this))
                .findDataSources(
                        new DataSourcesRequest.Builder()
                                .setDataTypes(dataType)
                                .setDataSourceTypes(dataSource)
                                .build())
                .addOnSuccessListener(
                        new OnSuccessListener<List<DataSource>>() {
                            @Override
                            public void onSuccess(List<DataSource> dataSources) {
                                for (DataSource dataSource : dataSources) {
                                    Log.i(TAG, "Data source found: " + dataSource.toString());
                                    Log.i(TAG, "Data Source type: " + dataSource.getDataType().getName());

                                    // Let's register a listener to receive Activity data!
                                    if (dataSource.getDataType().equals(dataType)
                                            && mListener == null) {
                                        registerFitnessDataListener(dataSource, dataType);
                                    }
                                }

                            }
                        })
                .addOnFailureListener(
                        new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.e(TAG, "failed", e);
                            }
                        });
    }

Слушатель: он регистрируется, но один раз вернет -3.0.

private void registerFitnessDataListener(DataSource dataSource, DataType dataType) {

        // [START register_data_listener]
        mListener =
                new OnDataPointListener() {
                    @Override
                    public void onDataPoint(DataPoint dataPoint) {
                        for (Field field : dataPoint.getDataType().getFields()) {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    DataSource val = dataPoint.getDataSource();

                                    Log.i(TAG, "Detected DataPoint field: " + field.getName());
                                    Log.i(TAG, "Detected DataPoint value: " + dataPoint.getValue(field));
                                }
                            });
                        }
                    }
                };

        Fitness.getSensorsClient(this, GoogleSignIn.getLastSignedInAccount(this))
                .add(
                        new SensorRequest.Builder()
                                .setDataType(dataType)
                                .setSamplingRate(1, TimeUnit.SECONDS)
                                .setMaxDeliveryLatency(3, TimeUnit.SECONDS)
                                .setFastestRate(1, TimeUnit.SECONDS)
                                .build(),
                        mListener)
                .addOnCompleteListener(
                        new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                if (task.isSuccessful()) {
                                    Log.d(TAG, "Listener registered");
                                } else {
                                    Log.e(TAG, "Listener not registered", task.getException());
                                }
                            }
                        });


    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...