我创建了一个在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++;
}
}
问题是我的数组有一个值而不是不同的值。
答案 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);
}
这应该有预期的结果。