Я использую диспетчер датчиков андроидов, чтобы получить показания акселерометра. Чтения, которые я получаю, являются m/s2 и почти точны. Но максимальное чтение, которое я получаю, на любой оси в любом направлении - | 19.xx | , что составляет приблизительно 2 Гс. Является ли это особой проблемой для смартфонов или есть некоторые настройки, которые мне нужно изменить для получения больших значений?Максимальное значение показаний акселерометра на Android
это код, который я использую, чтобы получить датчик для акселерометра:
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)
Я использовал getMaximumRange(), и он вернул 1.0. Но максимальное значение, которое я получаю, равно 19.xx m/s^2. Это аномалия ..? – Khalil
У меня такая же проблема. getMaximumRange() вернулся 2.0 для меня (Samsung Galaxy Ace, 2.3.3, акселерометр), и я могу легко получить 10.0 или больше. – Kacper86