Добрый день. Есть самописная конфа, собирается сборщиком 2.0.8.19 с API 28.0.3 и мобильной платформой 8.3.14.53 либо 8.3.13.45. Следующий код для определения координат в фоне работает только на устройствах с Android 7+ (и на эмуляторе 4.4)
Процедура ОпределитьТекущиеКоординатыНаКлиенте() Экспорт
#Если МобильноеПриложениеКлиент Тогда
Провайдер = "network";
//Попытка
СекундыНаОбновление = 10;
МассивПровайдеров = СредстваГеопозиционирования.ПолучитьПровайдеров();
Инд = 0;
Для Каждого ТекущийПровайдер Из МассивПровайдеров Цикл
Если ТекущийПровайдер.Имя = "passive" Тогда
Продолжить;
КонецЕсли;
ЧастотаОбновления = СекундыНаОбновление + Инд;
ОписаниеОповещения = Новый ОписаниеОповещения("ОпросКоординат", ГеопозиционированиеКлиент);
СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения(ОписаниеОповещения, ТекущийПровайдер.Имя, , ЧастотаОбновления);
Инд = Инд + 1;
КонецЦикла;
//Исключение
а = 1;
//КонецПопытки;
#КонецЕсли
КонецПроцедуры
Процедура ОпросКоординат(ИмяПровайдера, ДанныеМестоположения, ДополнительныеДанные) Экспорт
ОбщиеПроцедурыСервер.ПроставитьКоординаты(ДанныеМестоположения.Координаты.Долгота, ДанныеМестоположения.Координаты.Широта);
Сообщить("были получены координаты " + ДанныеМестоположения.Координаты.Долгота + " широты " + ДанныеМестоположения.Координаты.Широта +
" используя " + ИмяПровайдера);
КонецПроцедуры // ОпросКоординат
Показать
На устройствах с версией ниже 7 вылетает ошибка "значение не является значением объектного типа (Координаты)". На более новых все работает без проблем и шустро. Разрешение на геопозиционирование и геопозиционирование в фоне (для платформы 8.3.14) стоит. Сама конфигурация пишется с режимом совместимости с 8.3.13.
Из-за чего такое может быть? Надо как-то отдельно собирать под старые версии, скачивая старые апи андроид?