Мое приложение имеет карту, и когда пользователь долго нажимает на нее, мне нужно, чтобы текущее местоположение телефона отображалось на карте. Как @Chen advised похоже, что getCurrentLocation() - правильный метод для использования в моем случае. Обратите внимание, что я не хочу использовать LocationListener, потому что я хочу, чтобы у пользователя был контроль, когда они хотят обновить свое местоположение.Как я могу прервать метод getCurrentLocation (Codename One Location Manager)?
Кроме того, я выбрал это обновление местоположения вручную, потому что @ Shai-Almog discouraged location polling. Таким образом, после прочтения этого post я первый установить тайм-аут на 20 секунд, как написано ниже, чтобы получить текущее местоположение телефона:
Dialog ip = new InfiniteProgress().showInifiniteBlocking();
Location currentLocation = locationManager.getCurrentLocationSync(
ParametresGeneraux.LOCATION_TIMEOUT_MILLI);
// We try to get something
if (currentLocation == null) {
currentLocation = locationManager.getLastKnownLocation();
}
ip.dispose();
Но это не было достаточно, и последнее известное место было «всегда» при условии (я не считал возможно, 5 раз подряд), хотя значок маленького местоположения появился на панели инструментов. Поэтому я установил его на 40 с, но фактическое текущее местоположение не пришло ни после этого в два раза больше времени (было предоставлено только последнее известное место на расстоянии> 2 км).
Однако, если я запустил Карты Google на Android (KitKat), местоположение моментально точно. И затем, если я вернусь к своему приложению и нажимаю на карту, текущее местоположение будет найдено. На самом деле я нашел post, касающийся разницы в точности между Google Maps и Android API, но это было связано с Shangai/China, а не с ЕС (Франция).
Следовательно, мой вопрос имеет два аспекта:
первым, как может быть такая огромная разница в том же устройстве между Google Maps и Codename One?
, то если я не устанавливаю тайм-аут на
getCurrentLocation()
, как я могу прерывать поиск местоположения, когда пользователь устал ждать?
Любая помощь приветствуется,
BR
Удивительно, спасибо тонне @Shai! Добавление android.playService.location = true к подсказкам построения делает текущее местоположение более быстрым ([подробнее об блоге CN1] (https://www.codenameone.com/blog/ а-спасибо-вам-в-важное-обновление-на-андроид-builds.html)). Пока это пока неточно, но Google Maps не работает, поэтому я не могу сравнивать. Кстати, вы видели мой другой вопрос (http://stackoverflow.com/questions/41695584/buttons-in-codename-one-form-inactive-on-android-actual-device-but-work-under- си)? – HelloWorld
Я пропустил этот вопрос, не забыли ли вы пометить его изначально? –
Нет, я не забыл, был просто удивлен, потому что вы всегда отвечаете быстро. В любом случае спасибо за ответ! – HelloWorld