Ну, я бы не стал звонить enableCompass()
на onCreate()
(откуда, я полагаю, взялся этот код, учитывая вызов setContentView()
). Включите компас в onResume()
и отключите его в onPause()
, чтобы вы не поддерживали работу датчиков, когда ваша активность не отображается на экране. И вам не нужно postInvalidate()
.
В противном случае, это нормально. Имейте в виду, что он будет работать только на реальном оборудовании.
Вот пример проекта , который включает компас на MyLocationOverlay
, который определенно работает, хотя вам нужно будет заменить его собственным значением android:apiKey
.