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

如何获得Android传感器采样频率?,android,sensors,Android,Sensors,对于android设备,我只知道我们可以为SensorManager定义参数,以便调整传感器的采样率。但是,有没有办法精确测量传感器采样率 GPS的工作频率为1 Hz,您无法更改。如果您询问内部采样率,您必须检查设备中的GPS芯片,并查看其规格 您可以通过获取时间戳来测量其他传感器。但我看到的设备从每次加速通话10毫秒到30毫秒甚至更多(以最快的速度)。您可以执行以下操作: private float calculateSensorFrequency() { if (startTime

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

GPS的工作频率为1 Hz,您无法更改。如果您询问内部采样率,您必须检查设备中的GPS芯片,并查看其规格


您可以通过获取时间戳来测量其他传感器。但我看到的设备从每次加速通话10毫秒到30毫秒甚至更多(以最快的速度)。

您可以执行以下操作:

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);
    }
}
计算的频率显然取决于您设置的传感器延迟