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.