从本机API检索时,加速度计的数据是否更准确?

时间:2012-04-20 14:53:19

标签: java c accelerometer

我和朋友正在开发一个应用程序,它从加速计读取数据以便稍后处理。我们正在使用Blackberry Playbook(基于Android)。

我们需要尽可能准确的数据。他说,与使用Java API获得的读数相比,使用本机C API完成后,从Playbook的加速度计获得的读数更准确。我想也许他从每个API读取数据的速度可能让他认为C代码读数更准确。

设置读取速率并以C读取数据:

/* 25000 microseconds  = 25 miliseconds */
static const int ACCELEROMETER_RATE = 25000;

sensor_set_rate(SENSOR_TYPE_ACCELEROMETER, ACCELEROMETER_RATE);
sensor_set_skip_duplicates(SENSOR_TYPE_ACCELEROMETER, true);

/* ...code ommited... */

/* gets the data */
sensor_event_get_xyz(event, &force_x, &force_y, &force_z);

在Java中就像这样:

mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_UI);

/* ...code ommited... */

public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
    return;

mSensorX = event.values[0];
mSensorY = event.values[1];
mSensorZ = event.values[2];
}

我之前读过SensorManager.SENSOR_DELAY_UI`将读取速率设置为大约20ms,但我不确定。

C中的代码是否能获得比Java中的代码更准确的数据?

1 个答案:

答案 0 :(得分:1)

Blackberry开发人员也可能在Java实现中使用包含c代码的库。

不,语言应该不起任何作用,因为无论如何c和java都被简化为字节码。