Максимальное значение показаний акселерометра на Android

Я использую диспетчер датчиков Android для получения показаний акселерометра. Показания, которые я получаю, составляют м/с2 и почти в порядке. Но максимальное значение, которое я получаю по любой оси в любом направлении, равно |19.xx| , что составляет примерно 2 Гс. Это проблема конкретного смартфона или есть какие-то настройки, которые мне нужно изменить, чтобы получить более высокие значения?

это код, который я использую, чтобы получить датчик для акселерометра:

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 уровня 7.

И я тестировал на двух телефонах: HTC HD 2 (Android 2.3.5) Samsung Spica (Android 2.1).


person Khalil    schedule 05.01.2012    source источник


Ответы (2)


"Точных значений" там нет. Это зависит от устройства. Ускорение может быть положительным или отрицательным — getMaximumRange() , я предполагаю, что вы можете безопасно умножить это значение на -1, чтобы получить минимальное значение.

person nisha.113a5    schedule 05.01.2012
comment
Я использовал getMaximumRange(), и он вернул 1.0. Но максимальное значение, которое я получаю, составляет 19,xx ​​м/с^2. Это аномалия..? - person Khalil; 06.01.2012
comment
У меня точно такая же проблема. getMaximumRange() вернул мне 2.0 (Samsung Galaxy Ace, 2.3.3, акселерометр), и я легко могу получить 10.0 или больше. - person Kacper86; 09.03.2012

Вы можете получить G, делая это: Gs = sqrt (Xg^2 + Yg^2 + Zg^2), где ^2 означает sqr или квадрат (X^2 = X*X). Это даст вам применяемые G.

person polonskyg    schedule 13.10.2012