如何获得Android传感器采样频率?

时间:2012-10-22 06:33:25

标签: android sensor

对于Android设备,我只知道我们可以为SensorManager定义参数,以便调整传感器的采样率。但是有没有办法准确测量传感器采样率?

2 个答案:

答案 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);
    }
}

计算出的频率显然取决于您设置的传感器延迟。