diff --git a/engine/src/android/com/jme3/input/android/AndroidSensorJoyInput.java b/engine/src/android/com/jme3/input/android/AndroidSensorJoyInput.java index 0b5c90a84..95ddb1587 100644 --- a/engine/src/android/com/jme3/input/android/AndroidSensorJoyInput.java +++ b/engine/src/android/com/jme3/input/android/AndroidSensorJoyInput.java @@ -121,6 +121,7 @@ public class AndroidSensorJoyInput implements JoyInput, SensorEventListener { int androidSensorType = -1; int androidSensorSpeed = SensorManager.SENSOR_DELAY_GAME; Sensor sensor = null; + int sensorAccuracy = 0; float[] lastValues; final Object valuesLock = new Object(); ArrayList axes = new ArrayList(); @@ -360,6 +361,10 @@ public class AndroidSensorJoyInput implements JoyInput, SensorEventListener { return false; } + if (sensorData.sensorAccuracy == SensorManager.SENSOR_STATUS_UNRELIABLE) { + return false; + } + synchronized(sensorData.valuesLock) { accValues[0] = sensorData.lastValues[0]; accValues[1] = sensorData.lastValues[1]; @@ -371,6 +376,10 @@ public class AndroidSensorJoyInput implements JoyInput, SensorEventListener { return false; } + if (sensorData.sensorAccuracy == SensorManager.SENSOR_STATUS_UNRELIABLE) { + return false; + } + synchronized(sensorData.valuesLock) { magValues[0] = sensorData.lastValues[0]; magValues[1] = sensorData.lastValues[1]; @@ -619,6 +628,9 @@ public class AndroidSensorJoyInput implements JoyInput, SensorEventListener { SensorData sensorData = sensors.get(sensorType); if (sensorData != null && sensorData.sensor.equals(se.sensor) && sensorData.enabled) { + if (sensorData.sensorAccuracy == SensorManager.SENSOR_STATUS_UNRELIABLE) { + return; + } synchronized(sensorData.valuesLock) { for (int i=0; i