对于Android设备,我只知道我们可以为SensorManager定义参数,以便调整传感器的采样率。但是有没有办法准确测量传感器采样率?
答案 0 :(得分:1)
GPS以1 Hz的频率工作,你无法改变它。如果您询问内部采样率,您必须检查设备中的GPS芯片并查看其规格。
您可以通过计划时间来衡量其他传感器。但我已经看到设备的范围从每加速呼叫10毫秒到30和更多(以最快速率)。
答案 1 :(得分:0)
您可以执行以下操作:
private float calculateSensorFrequency() {
if (startTime == 0) {
startTime = System.nanoTime();
}
long timestamp = System.nanoTime();
return (count++ / ((timestamp - startTime) / 1000000000.0f));
}
然后,像下面这样调用 calculateSensorFrequency 方法,例如,在加速度计传感器的情况下。
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
int sensorType = sensorEvent.sensor.getType();
switch (sensorType) {
case Sensor.TYPE_ACCELEROMETER:
System.out.println("Frequency: " + calculateSensorFrequency());
break;
default:
throw new IllegalStateException("Unexpected value: " + sensorType);
}
}
计算出的频率显然取决于您设置的传感器延迟。