Хорошо, сначала самые простые ... О Q1, Гироскоп измеряет Угловую скорость (радиан / секунду), а Ориентация имеет другую величину, рассказывая нам, как «расположено» устройство (я действительно не знаю, как объяснить что-то настолько простое на английском языке).
А насчет Q2 , я бы сказал, да, 3-Ориентация оси доступна на большинстве смартфонов, по крайней мере тех, на которых установлен Android.
Q3 : Компас фактически использует значения Orientarion, датчик магнитного поля измеряет эту величину (не в градусах), хотя, вероятно,Вы можете рассчитать значения компаса с магнитным полем.Другое использование ... ну, вы можете сказать, находится ли устройство вверх или вниз, например.
О Q4 , это сложнее, я не такой специалист в акселерометрах,но я думаю, что большинство этих «датчиков» используют один и тот же аппаратный датчик, который измеряет магнитное поле и производит необходимые вычисления, но я настаиваю, может быть, лучше прочитать более подробную и техническую информацию.
Если вы заметили, теперь OrientarionSensor устарел, и это написано в документации:
Примечание: этот тип датчика существует по устаревшим причинам, пожалуйста, используйте getRotationMatrix () в сочетании с remapCoordinateSystem () и getOrientation () для вычисленияэти значения вместо этого.
Так что да, кажется, что он рассчитывает значения ориентации через акселерометр, но, тем не менее, ориентация задается в градусах, а ускорение в (м / с ^ 2), различных величин.Как я уже говорил, я думаю, что они измеряют разные величины одним и тем же датчиком, поэтому они представляют различный тип Events
в API.
Я надеюсь, что я не написал много огромных ошибок, потому что, хорошо,Я также хотел бы уточнить некоторые понятия, касающиеся этих датчиков.