Android上加速度计读数的最大值

时间:2012-01-05 13:55:26

标签: android accelerometer sensor measurement

我正在使用机器人传感器管理器来获取加速度计读数。我得到的读数是m / s2,几乎没问题。但是我在任何方向的任何轴上获得的最大读数是| 19.xx | ,大约2 Gs。这是智能手机特定的问题还是我需要更改某些设置以获得更大的价值?

这是我用来获取加速度计传感器的代码:

sensorManager = (SensorManager) context
            .getSystemService(Context.SENSOR_SERVICE);

    List<Sensor> sensors = sensorManager
            .getSensorList(Sensor.TYPE_ACCELEROMETER);
    if (sensors.size() > 0) {
        sensor = sensors.get(0);
        float max = sensor.getMaximumRange();
        boolean running = sensorManager.registerListener(sensorEventListener,
                sensor, SensorManager.SENSOR_DELAY_GAME);           
    }

这就是onSensorChanged()的样子

public void onSensorChanged(SensorEvent event) {

        now = event.timestamp;

        x = event.values[0];
        y = event.values[1];
        z = event.values[2];

    }

我使用的是Android API Level 7。

我在两部手机上测试过: HTC HD 2(Android 2.3.5) 三星Spica(Android 2.1)

2 个答案:

答案 0 :(得分:0)

&#34;确切的价值观&#34;不在那里。它会因设备而异。加速可以是正数或负数 - getMaximumRange(),我认为你可以安全地将该值乘以-1得到最小值。

答案 1 :(得分:0)

你可以让G做到这一点: Gs = sqrt(Xg ^ 2 + Yg ^ 2 + Zg ^ 2)其中^ 2表示sqr或square(X ^ 2 = X * X) 那会给你Gs申请。