Для определения наклона телефона используйте информацию об ориентации (onOrientationChanged
), а не ускорение.Этот метод получит OrientationData
, из которого вы можете напрямую задать наклон телефона вокруг каждой оси:
@Override public void onOrientationChanged(OrientationData pOrientationData) {
pOrientationData.getYaw() //compass
pOrientationData.getPitch() //one orientation axis
pOrientationData.getRoll() //other orientation axis
}
Значения, возвращаемые этими методами, приведены в градусах.Я реализовал игру с полным контролем наклона, используя информацию только этого метода, поэтому я знаю, что она отлично работает для этой цели.
Также не забудьте изменить датчик, позволяющий использовать enableOrientationSensor(this)
вместо enableAccelerationSensor
.