Uzyskiwanie wektora kierunku w systemie Android

Jak mogę uzyskać wektor kierunkowy reprezentujący kierunek, w którym wskazuje tylna strona urządzenia względem współrzędnych ziemi?

Na przykład, jeśli umieścisz go na biurku (ekran skierowany do góry), powinien on brzmieć [0,0, -1], a jeśli jest trzymany pionowo w kierunku północnym, powinien wskazywać [1,0,0] itd.

Wiem, jak to obliczyć na podstawie kursu, wysokości i rzutu, o ile są one względem współrzędnych ziemi. Żeby było jasne, nie szukam prędkości kątowej, ale rzeczywistego kąta prądu względem płaszczyzny stycznej do ziemi. Jeśli więc urządzenie jest trzymane pionowo i zwrócone na północ, kąt „alfa” powinien wynosić 0 lub 360, kąt „beta” powinien wynosić 90, a „gamma” powinien brzmieć 0. Nie mogę dowiedzieć się, jak uzyskać te wartości zarówno.

Czytałem API przez cały dzień i nadal nie mogę znaleźć sposobu na uzyskanie jednej z tych rzeczy.

public void onSensorChanged(SensorEvent event) {
    // ?    
}

Dziękujemy za wszelkie spostrzeżenia.

questionAnswers(2)

yourAnswerToTheQuestion