Я думаю, что причина, по которой вы видите только примеры использования значений акселерометра, заключается в том, что датчик силы тяжести был запущен только в API 9, а также потому, что большинство телефонов могут не давать эти значения отдельно от значений акселерометра или не иметь датчика и т. и т.д ..
Другая причина может заключаться в том, что в большинстве случаев результат, как правило, одинаков, поскольку на выходе датчика акселерометра находится линейное ускорение устройства плюс сила тяжести, но большую часть времени телефон будет стоять на месте или даже двигаться с постоянная скорость, при этом ускорение устройства будет равно нулю.
Из документов setRotationMatrix
Android:
Матрицы, возвращаемые этой функцией, имеют смысл только тогда, когда устройство не свободно падает и не находится близко к магнитному северу. Если устройство ускоряется или находится в сильном магнитном поле, возвращаемые матрицы могут быть неточными.
Теперь вы спрашиваете, будут ли данные гравитации более надежными? Ну, нет ничего лучше, чем тестирование, но я полагаю, что это не будет иметь большого значения, и это действительно зависит от того, какое приложение вы хотите. Кроме того, получение простых значений гравитации не является тривиальным и требует фильтрации, поэтому вы можете получить шумные результаты.