从心率传感器创建值数组

时间:2016-11-30 21:20:39

标签: java android android-sensors

我创建了一个在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++;
        }
}

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

1 个答案:

答案 0 :(得分:0)

我没有使用过Android的传感器,但我发现有些事情可能影响到预期的结果。

首先,您使用的是预设数组(arrayHeartRateValues),它将预先设置为设定大小。因为您不确定要捕获的sensorEvents的数量,我建议使用更灵活的选项。就个人而言,我使用ArrayList类来处理大多数事情,下面的代码示例也会这样,但你可以使用你喜欢的任何东西。

其次,您(正如评论中所述)只是将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);
}

这应该有预期的结果。