2011-08-17 5 views
14

Odkryłem, że po uruchomieniu gry kompas często nie działa. Obiekty będą latać i nie będą tam, gdzie powinny. Ale jeśli przesuniemy telefon na ósemkę (lub po prostu machamy nim w przypadkowych kierunkach), wszystko zaskoczy na miejsce w ciągu pół minuty.W Androidzie mogę programowo wykryć, że kompas nie jest jeszcze skalibrowany?

Czy sprzęt wie, kiedy kompas nie jest skalibrowany? Czy to możliwe, żebym to wykrył i wyświetlił komunikat informujący użytkownika: "Twój kompas androida musi zostać skalibrowany. Przesuwaj telefonem w poziomym ruchu ósemkowym, dopóki ta wiadomość nie zniknie".

Odpowiedz

18

W SensorEventListener znajduje się funkcja onAccuracyChanged(Sensor sensor, int accuracy), w której można sprawdzić dokładność magnetometru urządzenia. Dostępne są 4 poziomy dokładności (od klasy):

SENSOR_STATUS_ACCURACY_HIGH = 3 
SENSOR_STATUS_ACCURACY_MEDIUM = 2 
SENSOR_STATUS_ACCURACY_LOW = 1 
SENSOR_STATUS_UNRELIABLE = 0 
Powiązane problemy