Запишите некоторые отфильтрованные образцы акселерометра, не перемещая устройство.
Вычислите среднее значение всех этих выборок, чтобы получить вектор понижения.
Векторы, перпендикулярные ему, составляют горизонтальные плоскости.Взяв скалярное произведение вектора вниз с вектором вдоль оси Z (0,0,1), вы сможете определить угол экрана относительно горизонта (см. оси акселерометра )
Я не пробовал это, но это был бы мой подход ... надеюсь, это как-то поможет