2010-08-28 2 views
2

Здравствуйте! Я работаю над приложением, которое использует компас и место для рисования стрелки в направлении местоположения. Моя проблема заключается в том, когда я запускаю свой код на эмуляторе, все стрелки указывают правильные направления, и когда я изменяю ориентацию эмулятора на пейзаж, все стрелки все еще верны. Но когда я запускаю одно и то же приложение на своем Nexus One, стрелки все правильны, когда телефон вертикальный, но когда он поворачивается на пейзаж, все стрелки отключены на 90 градусов. Он держит «верх» телефона как ссылку на Север. Таким образом, вы должны исправить компас для ориентации телефона. Это происходит на всех реальных телефонах, а эмулятор - другой? Или это только Нексус? Спасибо :)Android Compass, читающий разные значения на разных телефонах?

+0

Вы когда-нибудь это выясняли? – Greg

+0

Нет, я так и не понял :( –

ответ

0

Из моего понимания текущего способа работы компаса предполагается, что для правильного чтения всегда используется «верх» телефона или «ориентация по умолчанию». Возможно, это было по-другому в более ранних версиях Android. Говорят, что затем разработчикам приходится компенсировать ориентацию экрана, чтобы представлять истинный север с изменениями ориентации. То же самое касается акселерометра, на котором ось остается на основе ориентации экрана по умолчанию (так что для большинства телефонов портрет, но планшеты больше всего будут пейзажами). Ненавижу ссылаться на страницу sdk, но эта ссылка в первом абзаце объясняется: http://developer.android.com/reference/android/hardware/SensorEvent.html

Смежные вопросы