Como posso obter o vetor do campo magnético, independente da rotação do dispositivo?

O que eu quero arquivar é uma espécie de "impressão digital magnética" de um local. Eu uso o sensor MAGNETIC_FIELD e no caso eu recebo o3 valores para o eixo X, Y e Z (infelizmente não explicado).

O problema é que os valores mudam quando eu giro o dispositivo, então acho que o eixo 3 é relativo ao dispositivo. O que eu preciso é compensar a rotação do dispositivo para que eu obtenha os mesmos 3 valores, independentemente de como o dispositivo é girado.

Eu tentei multiplicar com a matriz de rotação (eu sei como conseguir isso), tentei multiplicar com a matriz de inclinação e assim por diante, mas nada funciona. Independentemente do que eu tente, ainda assim os valores mudam quando eu giro o dispositivo.

Então, alguém sabe como fazer isso certo? De preferência com código, porque eu li um monte de coisas como 'bem, então você terá que compensar isso usando matriz de rotação', mas não encontrou um único exemplo concreto de trabalho.

questionAnswers(4)

yourAnswerToTheQuestion