конечно выложу, если ума хватит ))))
откомпилировал Ваше приложение = все работает, получаем данные акселерометра, магнитного датчика и углы (их я перевел в градусы для большей наглядности).
но тут наступает вот какой момент (возможно, Вы именно о нем писали, когда упоминали об ориентации экрана)…
когда телефон горизонтально (смотришь на экран сверху) - четко видно, что в первом углу = Азимут на север, который меняется от -180 до +180. 0 - север.
когда поднимаешь телефон вертикально (смотришь на телефон сбоку) - этот угол "едет" - те он начинает показывать что-то, но не азимут на север.
предыдущая статья на хабре этого автора (я тоже читал обе эти статьи когда пытался разобраться сам), где он использует устаревший метод и потом выкладывает апк-шку - так вот в этой предыдущей версии (в ее апк-шке) углы определяются исключительно верно- поднимай телефон, крути, а азимут на север показывается четко. аналогично по двум другим углам. тем этот метод меня и зацепил....
Вы об этом говорили, когда писали про "ориентацию экрана" или имели ввиду что-то другое?