Obtendo vetor de direção no Android

Como posso obter um vetor de direção representando a direção que a parte de trás do dispositivo está apontando em relação às coordenadas da Terra?

Por exemplo, se colocar em uma mesa (com a tela voltada para cima), ele deve ler [0,0, -1] e, se estiver na vertical, voltado para o norte, deve ler [1,0,0], etc.

Eu sei como calcular a partir de rumo, pitch e roll, contanto que eles sejam relativos a coordenadas terrestres. Para ser claro, não estou procurando velocidade angular, mas o ângulo atual real em relação ao plano tangente à terra. Portanto, se o dispositivo for mantido verticalmente e voltado para o norte, o ângulo "alfa" deverá ser 0 ou 360, o ângulo "beta" deverá ser 90 e "gamma" deverá ser 0. Não consigo descobrir como obter esses valores ou.

Eu tenho lido a API durante todo o dia e ainda não consigo encontrar como obter qualquer uma dessas coisas.

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

Obrigado por qualquer insight.

questionAnswers(2)

yourAnswerToTheQuestion