BlackberryLocationProvider setLocationListener не дает периодических обновлений местоположения на 8900, на остальных устройствах работает нормально - PullRequest
2 голосов
/ 30 декабря 2011

В настоящее время я работаю над решением на основе местоположения, где мне нужно обрабатывать периодические обновления местоположения. Он отлично работает на Torch 9800, Bold 9780, однако не дает мне периодических обновлений местоположения на Curve 8900 с ОС 5.0.0.535.

Я определил свои критерии как:

bbCriteria = new BlackBerryCriteria();
bbCriteria.setSpeedAndCourseRequired(false);
bbCriteria.setCostAllowed(true);
if(bbCriteria.getMode() == GPSInfo.GPS_MODE_ASSIST) {
    bbCriteria.setHorizontalAccuracy(20);
    bbCriteria.setVerticalAccuracy(20);
}

и я регистрируюсь для периодических обновлений по:

locationProvider = (BlackBerryLocationProvider)LocationProvider.getInstance(bbCriteria);
locationProvider.setLocationListener(new MyLocationListener(), getUpdateInterval(), -1, -1);

где я вычисляю временной интервал на основе моей бизнес-логики. В общем, это 60 секунд.

Я получаю периодические обновления местоположения в моем приемнике для ряда устройств, например, Torch 9800, Bold 9780, однако на Curve 9800 после первого обновления ничего не происходит.

Более того, режим GPS по умолчанию в других устройствах ПОМОЩЕН, однако на кривой 8900 он АВТОНОМ.

Пожалуйста, дайте мне знать, в чем может быть проблема?

1 Ответ

2 голосов
/ 30 декабря 2011

Ну ... Что я обнаружил в ходе тестирования, так это то, что LocationListener, кажется, только прослушивает для определения местоположения, но на самом деле не запрашивает его. Поэтому, если другое приложение запрашивает местоположение, ваше приложение будет периодически получать его, но если ничего активно не запрашивает местоположение - ничего не будет предоставлено. Решение, которое я реализовал, состоит в том, чтобы полностью отказаться от LocationListener и просто установить таймер, который периодически вызывает getLocation для получения нового местоположения. Это отлично работает по всем направлениям. Этот метод также дает вам больше контроля, поскольку, если устройству не удалось найти местоположение, вы узнаете и узнаете причину (время ожидания и т. Д.).

Что касается вашего вопроса о настройках по умолчанию, то для разных устройств могут быть разные настройки по умолчанию, в зависимости от оператора связи. Так, например, Verizon действительно ограничивает поддержку Assisted и Cellsite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...