Sensor de vector de rotación Android 5 no es preciso

He encontrado un problema con el sensor de rotación, el que tiene TYPE_ROTATION_VECTOR tipo. La lectura del sensor parece no ser exacta, o está perturbada por algo, es difícil para mí decirlo. Este es el código que estoy usando para adquirir la rotación real del dispositivo:

 public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) { if (prevRotMatrix == null) { prevRotMatrix = new float[16]; SensorManager.getRotationMatrixFromVector(prevRotMatrix, event.values); } else { float[] deltas = new float[3]; SensorManager.getRotationMatrixFromVector(rotMatrix, event.values); SensorManager.getAngleChange(deltas, rotMatrix, prevRotMatrix); rotXVal += (float) Math.toDegrees(deltas[1]); rotYVal += (float) Math.toDegrees(deltas[2]); rotZVal += (float) Math.toDegrees(deltas[0]); client.rotX(rotXVal); client.rotY(rotYVal); client.rotZ(rotZVal); System.arraycopy(rotMatrix, 0, prevRotMatrix, 0, rotMatrix.length); } } } 

El rotXVal , rotYVal y rotZVal son todos cero al principio.
El problema es que los valores que estoy recibiendo están perturbados de alguna manera. El movimiento de los dispositivos es generalmente vizualizado por ellos, pero muy a menudo algunos valores inválidos aparecen. A menudo, cuando giro el dispositivo en una dirección, la lectura muestra la rotación válida, pero después de eso hay una "retroalimentación" inválida a la dirección opuesta, por lo general más pequeño que el movimiento adecuado.
Lo importante es que la situación sólo me sucede en el dispositivo Android Lollipop (Samsung Galaxy S6). También estaba probando esto en KitKat (Samsung Galaxy Note 4) y el mismo código funcionaba bien.
Me di cuenta del mismo comportamiento al ejecutar este RotationVectorDemo . El mismo tipo de distorsión en Lollipop, pero funciona bien en KitKat.

Me pregunto si alguien podría ayudarme a averiguar cómo resolver o solucionar el problema. O tal vez debería dejarlo y usar algún otro sensor?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.