Имя: Пароль:
1C
 
Мобильная платформа 1С. Получение координат
0 mzelensky
 
03.03.15
12:37
Доброго времени суток!
У меня ситуация следующая - до этого работали на платформе "8.3.5.86". Приложение отрабатывало корректно. Координаты получились тоже нормально (причем и по провайдеру "gps"  и "network"). С недавнего времени пользователи стали жаловаться ,что координаты либо вообще перестали определяться, либо это происходит крайне редко (на достаточно длительном периоде тестирования. В разных точках с разных устройств).

Обновил платформу до  "8.3.5.96" (в надежде ,что глюк уйдет). Сборку делал через Сборщик мобильного приложения. Теперь наблюдаю следующую картину (на своем устройстве, где ранее все работало отлично) - включаю спутник и нетворк (интернет). Захожу в стороннее приложение и проверяю ,что координаты ИДУТ - все работает. Захожу в 1С и пытаюсь получить координаты. Полуаю:

список доступных провайдеров: "gps", "network" и "passive".
Получить провайдеры по имени "gps"  и "network" получается (сам провайдер определяется).  НО получить координаты по этим провайдерам не удается (по обоим).

Сижу чешу репу - что могло поменяться, что могло сломаться???


Обработчик получения координат простой:


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



Функция ОпределитьМестоположение(ТекущийПровайдер)
Результат = Неопределено;

#Если МобильноеПриложениеКлиент Тогда
Если ТекущийПровайдер <> Неопределено тогда
Попытка
Если СредстваГеопозиционирования.ОбновитьМестоположение(ТекущийПровайдер.Имя, 30) Тогда
Результат = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер.Имя);
Иначе
Результат = Неопределено;
КонецЕсли;
Исключение
Результат = Неопределено;
КонецПопытки;

Если (Результат <> Неопределено) И ((ТекущаяДата() - МестноеВремя(Результат.Дата)) > 30) Тогда
Результат = Неопределено;
КонецЕсли;
КонецЕсли;
#КонецЕсли

Возврат Результат;
КонецФункции
1 ildary
 
03.03.15
13:32
(0) попробую предположить (я ненастоящий сварщик) - не было ли на устройствах каких-нибудь обновлений (например Google Services Framework) - которая поломала совместимость приложения 1С и Android? Или обновление андроида с 4 на 5 версию.
2 mzelensky
 
03.03.15
13:39
(1) "обновление андроида с 4 на 5 версию" - такого ничего не было. Я тестирую на своем планшете. Никаких обновлений на немне было в данном промежутке времени.

Единственное на что грещу - что 1С-цы стали использовать какую-нибудь другую версию SDk, JDK и что-то еще. НО нигде об этом не могу найти информацию.

Собственно от сюда и вопрос.
3 mzelensky
 
03.03.15
14:35
хрю
4 33_оленя
 
03.03.15
14:45
Хорошая программа, мне нравится.
5 mzelensky
 
03.03.15
15:34
(4) ты о чем?
6 spock
 
03.03.15
15:53
Никакого приложения типа fake location не установлено на устройстве?
7 mzelensky
 
03.03.15
16:13
(6) Ну что я, совсем дурак что ли...сам себе жизнь усложнять. Нет конечно. Я се тестирую на своем собственном планшете. Никаких подобных программ не стоит.
8 spock
 
03.03.15
16:16
(7) возле окна постоянно стоишь - спутники ловишь?
9 mzelensky
 
03.03.15
16:18
(8) Ну да.

Да и даже если предположить .что спутники не удалось поймать - через GPRS тоже ничего не находит, хотя должен отрабатывать мгновенно (по крайней мере раньше так отрабатывал)
10 Fish
 
03.03.15
16:19
(8) Всякие там мобильники и планшеты не только по спутникам определяют координаты.
11 mzelensky
 
04.03.15
09:00
2 часа взлома мозга и таки удалось определить ошибку...по крайней мере на моем планшете координаты начали определяться. Как обычно, причина просто феноменальная - при попытке перевести универсальное время со спутника (время по гринвичу) в местное время, получал время на час меньше фактического. Предполагаю, что причина в смещении зимнего\летнего времени...