Не удается стабильно получать координаты! Мобильное приложение. Средства геопозиционирования, обработчик изменения местоположения

1. pLinka 14.05.21 05:45 Сейчас в теме
Не хватает опыта, подскажите, в каком направлении копать, что может происходить не так?

В мобильном приложении при запуске главного окна запускается обработчик изменения местоположения.

Недавно пользователь обратился с ошибкой: после включения приложения начал с ним работу - запускал обмены, ещё что-то делал. Но первые координаты смог получить только спустя 20 минут работы в приложении. Смотрю по логам - gps включенный, кроме того, пользователь пытался ещё вручную, с помощью другой процедуры получить местоположение (безуспешно).

На этапе тестирования тоже замечала, что процедура не всегда стабильно получает данные о местоположении - то сидишь, ждёшь, телефон туда-сюда носишь по 15 минут и ничего не происходит, то стабильно работает и всё получается.

Команда, которой подключаю обработчик:

Оповещение= Новый ОписаниеОповещения("ОбработчикИзмененияМестоположения", СлужебныйКлиент);
СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения(Оповещение, "gps", , 10);


В ОбработчикИзмененияМестоположения происходит запись в регистр полученных координат (не чаще, чем раз в минуту).

Вопрос: от чего это зависит начало получения координат данной функцией, как сократить время получения первых координат до минимума? Может, кто-то сталкивался и работал уже с этим функционалом?

Версия платформы 8.3.18.1289.
Найденные решения
9. pLinka 03.06.21 10:47 Сейчас в теме
Более-менее удалось добиться результата путём подключения фоном нескольких обработчиков изменения местоположения - network, как самого быстрого, gps - как самого точного.

События обрабатываются асинхронно, координаты получаются быстро, за исключением нескольких непонятных случаев, когда либо пользователь закрывает приложение, либо теряется напрочь всяческая связь с космосом.

Правда, это породило уже другую проблему - как получать координаты нон-стопом, даже уходя в фон.
AlexSeldom; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user623969_dusa 14.05.21 10:20 Сейчас в теме
(1) а где собственно запуск обновить местоположение
4. pLinka 15.05.21 05:04 Сейчас в теме
(2) Запуск находится в событии открытия главного окна приложения.
3. AlexSeldom 14.05.21 11:58 Сейчас в теме
Процесс определения координат не зависит от 1С
пробовал минимизировать время : сначала координаты по вышкам сотовой связи - погрешность иногда в километры, определение координат по спутникам занимает различное время - от "очень быстро" до 2-3 минут или дольше если планшет пару суток не включался.
В 1С нет механизма сигнализации что изменилось месторасположение. Если только сравнивать сохраненные координаты с новыми
5. pLinka 18.05.21 10:27 Сейчас в теме
(3)
от "очень быстро" до 2-3 минут или дольше если планшет пару суток не включался.


А самое долгое сколько заняло?


(3)
В 1С нет механизма сигнализации что изменилось месторасположение.


Но вот этот же обработчик изменения каким-то образом что-то "слушает".


(3)
Если только сравнивать сохраненные координаты с новыми

Получать принудительно другим способом координаты через процедуру ОпределитьМестоположение() не получается - виснет приложение, иногда даже вылетает - как результат пользователи негодуют.
6. AlexSeldom 24.05.21 10:21 Сейчас в теме
А самое долгое сколько заняло?

минуты 4-5 это уж если человек с планшетом находится в очень нехороших условиях

Получать принудительно другим способом координаты через процедуру ОпределитьМестоположение() не получается - виснет приложение, иногда даже вылетает - как результат пользователи негодуют.

у нас сторонняя программа занимается определением координат: в ней сразу на карте отображается текущее местоположение.
7. pLinka 28.05.21 09:30 Сейчас в теме
(6)
у нас сторонняя программа занимается определением координат: в ней сразу на карте отображается текущее местоположение.


Можете подсказать, какая? И как происходит с ней взаимодействие из 1С (хотя бы в общих чертах)?
8. AlexSeldom 28.05.21 10:05 Сейчас в теме
Описание общих принципов тут: https://infostart.ru/1c/articles/613225/
как сделано у нас:
программа самописная и сделана для того чтобы 1. Учет используемой техники (в работе больше 100 планшетов) 2. Более точное определение (визуальный контроль на карте) местоположения.
в коде мобильной 1С
&НаКлиенте
Процедура ПолучитьДанные(Команда)
	#Если МобильноеПриложениеКлиент Тогда 
		НовВз = Новый ЗапускПриложенияМобильногоУстройства();
    	НовВз.Действие="ru.w0rm.intent.action.GetData";   ----------> тут вызов 
    	НовВз.Запустить(Истина);
	    Для Каждого Стр Из НовВз.ДополнительныеДанные Цикл
       	 Сообщить(Стр.Ключ+" - "+Стр.Значение);
   		КонецЦикла;  		
	#КонецЕсли

КонецПроцедуры
Показать


потом после нажатия кнопки в программе разбор полученных данных.
Прикрепленные файлы:
9. pLinka 03.06.21 10:47 Сейчас в теме
Более-менее удалось добиться результата путём подключения фоном нескольких обработчиков изменения местоположения - network, как самого быстрого, gps - как самого точного.

События обрабатываются асинхронно, координаты получаются быстро, за исключением нескольких непонятных случаев, когда либо пользователь закрывает приложение, либо теряется напрочь всяческая связь с космосом.

Правда, это породило уже другую проблему - как получать координаты нон-стопом, даже уходя в фон.
AlexSeldom; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот