Android-компас читает разные значения на разных телефонах? - PullRequest
2 голосов
/ 28 августа 2010

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

1 Ответ

0 голосов
/ 07 июня 2011

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

...