Я пытаюсь получить высоту звука от Sensor.TYPE_ROTATION_VECTOR, но я не знаю, как интерпретировать результаты.
Кажется, значения высоты звука одинаковы, независимо от того, наклонен телефон вперед или назад (вперед = верхняя часть телефона отходит от лица пользователя, а нижняя часть телефона перемещается ближе к лицу пользователя).
Линии на изображении представляют телефон, если смотреть сбоку и наклонять в разные стороны. углы. Верхний / средний телефон перпендикулярен земле.
Мне нужно значение, похожее на азимут (которое идет от -180 до +180 и не повторяется).
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) {
SensorManager.getRotationMatrixFromVector(rMat, sensorEvent.values);
SensorManager.getOrientation(rMat, orientation);
pitch = (int) (Math.toDegrees(orientation[1]) ) ;