Почему мобильное приложение 1С так долго (до 20 минут) получает координаты?
Не хватает опыта, подскажите, в каком направлении копать, что может происходить не так?
В мобильном приложении при запуске главного окна запускается обработчик изменения местоположения.
Недавно пользователь обратился с ошибкой: после включения приложения начал с ним работу - запускал обмены, ещё что-то делал. Но первые координаты смог получить только спустя 20 минут работы в приложении. Смотрю по логам - gps включенный, кроме того, пользователь пытался ещё вручную, с помощью другой процедуры получить местоположение (безуспешно).
На этапе тестирования тоже замечала, что процедура не всегда стабильно получает данные о местоположении - то сидишь, ждёшь, телефон туда-сюда носишь по 15 минут и ничего не происходит, то стабильно работает и всё получается.
Команда, которой подключаю обработчик:
Оповещение= Новый ОписаниеОповещения("ОбработчикИзмененияМестоположения", СлужебныйКлиент);
СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения(Оповещение, "gps", , 10);
Обрабочик запускается при открытии главно формы.
В ОбработчикИзмененияМестоположения происходит запись в регистр полученных координат (не чаще, чем раз в минуту).
Вопрос: от чего это зависит начало получения координат данной функцией, как сократить время получения первых координат до минимума? Может, кто-то сталкивался и работал уже с этим функционалом?
Соглашусь с предыдущим оратором. Надо сначала понять как сам GPS себя ведет.
Попробуй еще сюда - Telegram: 1С в мобильном в гости заглянуть, вдруг подскажут.
gps по техническим причинам не может выдавать ответ моментально, ей нужен 'прогрев', предварительный сбор данных и везение, т.е. наличие спутников в видимости и отсутствие помех от переотражений (здания).
Запусти приложение android gps test и посмотри визуально как у тебя это происходит, как идет сбор информации о спутниках.
Проверь, включена ли поддержка a-gps и есть ли интернет, это должно заметно ускорить получение координат.
из вики:
Некоторые приёмники с A-GPS объединены с радиомодулем (GSM) и не могут стартовать, если радиомодуль отключен.
p.s. укажи вместо gps - network, координаты будут определены моментально по сетям мобильного провайдера, с большой погрешностью до сотен метров но надо ли тебе точнее?
Все верно, "холодный" запуск GPS без доступа телефона к интернету, да еще и в помещении или на узкой улице, легко может занимать и 20 минут, и даже больше.
Александр Прохорович, старт, как правило, происходит у водителя на улице, он выключает приложение, едет до точки, затем включает и жмет кнопку "доставлено".
И не может получить координаты.
Причем если открыть яндекс карты, то местоположение определяется практически моментально.
И возникает вопрос, что тут нет так с мобильным приложением 1С?
Попробуйте отловить ошибку через попытку-исключение, еще попробуйте перенести определение местоположения в основной поток, а не в обработчики-оповещения (для тестирования).
Возможно, у пользователя какой-нибудь Huawei/Honor, которые слишком активно душат фоновые процессы и среди прочего тормозят весьма энергозатратную процедуру определения местоположения.
Там не так это работает: Сначала получаем данные из истории последнего местоположения, через доли секунды начинаем получать данные из паспорта Яндекса, потом по ip, потом с мобильной сети по расположению вышек, потом уже только gps.
Обращу внимание, что спутники над нами с южной стороны находятся)
p.s. укажи вместо gps - network, координаты будут определены моментально по сетям мобильного провайдера, с большой погрешностью до сотен метров но надо ли тебе точнее?
Относительно быстрый (до 90 секунд) старт устройства GPS возможен только при условии предоставления данных A-GPS (assisted GPS) по альманаху и эфемеридам. Обычно A-GPS предоставляет сотовый оператор. Если сотовой связи нет (отключена), или устройство было выключено на длительный срок, или было перемещено в отключённом состоянии на значительное расстояние, то производится "холодный старт", это значит, эфемериды (а в отдельных случаях и альманах) будут обновляться по данным со спутников и процедура эта может занимать до 30 минут.
А как в 1С называется провайдер, который использует A-GPS? Я нашла только: "gps", "network" или "passive". Какой-то из них подходит или мне нужно что-то другое задействовать?
Все зависит от устройства. Хреновые датчики будут и час получать координаты. Хорошие за пару минут ориентируются.
Плюс в самом телефоне можно включить доуточнение координат по сотовым вышкам и окружающим WiFi-сетям, тогда даже "слепые" телефоны начнут выдавать похожие на "правду" координаты.