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

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

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

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

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

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

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


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

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

Версия платформы 8.3.18.1289.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 Ответить
Оставьте свое сообщение
Вакансии
Ведущий разработчик 1С
Москва
зарплата от 200 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 170 000 руб.
Полный день

Аналитик 1С: ERP (оперконтур)
Москва
зарплата от 180 000 руб. до 250 000 руб.
Полный день

Аналитик 1С: УХ
Москва
зарплата от 180 000 руб. до 250 000 руб.
Полный день

Аналитик 1С: ЗУП
Москва
зарплата от 180 000 руб. до 250 000 руб.
Полный день