Имя: Пароль:
1C
1С v8
Мобильное приложение 8.3 - геопозиционирование не работает
0 Arm12
 
25.05.16
15:51
Народ выручайте. Проблема с получением координат по GPS с мобильного устройства Lenovo A7600.
В 1с написано:
#Если МобильноеПриложениеКлиент Тогда    
    
    Если СредстваГеопозиционирования.ОбновитьМестоположение("gps",60) Тогда
        Данные = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение("gps");
        Если НЕ Данные = Неопределено Тогда    
            Сообщить(Данные.Дата);
            Сообщить(Данные.Координаты);
            Сообщить(Данные.Направление);
            Сообщить(Данные.Скорость);
        Иначе
            Сообщить("Нет данных от gps");
        КонецЕсли;
    Иначе
        Сообщить("Нет ответа от провайдера GPS");
    КонецЕсли;
    
    
    #КонецЕсли

Получаю сообщение Сообщить("Нет ответа от провайдера GPS");
1 Arm12
 
25.05.16
15:53
Проверил разрешение на использование геолокации - есть, значек запуска определения положения (справа вверху) - есть, на яндекс карте точку показывает.........
2 Arm12
 
25.05.16
15:55
Что ещё может быть?

Использую мобильную платформу 8.3.7.56, без компиляции в apk.
3 mobile-1c
 
25.05.16
18:17
вот можешь так:
&НаКлиенте
Функция ОпределитьТекущиеГеокоординаты(ТекущееМестоположение) Экспорт

    #Если МобильноеПриложениеКлиент Тогда

        ТекущийПровайдер = "gps";

        Попытка

            ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);

        Исключение

            ДМ = Неопределено;

        КонецПопытки;

        Если ДМ = Неопределено Тогда

            ТекущийПровайдер = "network";

            Попытка

                ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);

            Исключение

                ДМ = Неопределено;

            КонецПопытки;

        КонецЕсли;

        Если ДМ = Неопределено Тогда

            Возврат Неопределено;

        КонецЕсли;

        Если ТекущаяДата() - МестноеВремя(ДМ.Дата) > 300 Тогда

            СредстваГеопозиционирования.ОбновитьМестоположение(ТекущийПровайдер, 5);
            ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);

        КонецЕсли;

        ДА = ПолучитьАдресПоМестоположению(ДМ.Координаты);
        Если ДА = Неопределено Тогда

            ТекущееМестоположение =  "Lat: " + ДМ.Координаты.Широта + ", Lon: " + ДМ.Координаты.Долгота;

        Иначе

            ТекущееМестоположение = СтрЗаменить(ДА.Представление, Символы.ПС, ", ");

        КонецЕсли;

        ТекущееМестоположение = ТекущееМестоположение + "Date: " + МестноеВремя(ДМ.Дата) + ", Provider: " + ТекущийПровайдер;

        Возврат ДМ.Координаты;

    #Иначе

        Возврат Неопределено;

    #КонецЕсли

КонецФункции
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.