从心率传感器创建值数组

create array of values from heart rate sensor

我创建了一个在 SENSOR_HEART_RATE 中使用的应用程序。 我的应用程序有一个显示心率值的标签,但问题是我每次都会得到很多值,而且这些值变化不频繁。 是否可以从传感器中保存一些值并创建数组?

这是我的部分代码:

public void onSensorChanged(SensorEvent sensorEvent) {
        showHeartRate.setText("my heart rate:" + sensorEvent.values[0]);
        int i=0;
        while(i<10){
            arrayHeartRateValues[i]= sensorEvent.values[0];
            i++;
        }
}

问题是我的数组只有一个值,而不是不同的值。

我没有玩过 android 的传感器,但我看到一些可能会影响预期结果的事情。

首先,您使用的是预设数组 (arrayHeartRateValues),它将被预先构建为设定大小。因为您不确定要捕获的 sensorEvents 的数量,所以我建议使用更灵活的选项。就个人而言,我将 ArrayList class 用于其中的大部分内容,下面的代码示例也将包含它,但您可以使用任何您喜欢的东西。

其次,您(如评论中所述)只是将 arrayHeartRateValues 的所有值设置为 sensorEvent.values[0] 的值。

这是我的处理方式。

在你的代码中的某处(无论你在哪里初始化 arrayHeartRateValues)试试这个

ArrayList<SensorEvent> arrayHeartRateValues = new ArrayList<>();

然后在捕获更改的方法中尝试这个

public void onSensorChanged(SensorEvent sensorEvent) {
        showHeartRate.setText("my heart rate:" + sensorEvent.values[0]);
        arrayHeartValues.add(sensorEvent);
}

这应该有预期的结果。