LINUX.ORG.RU

Как определить наличие модуля GPS в Qt?

 ,


0

1

Что-то читаю доку по QGeoPositionInfoSource, QGeoPositionInfo, и не могу понять, как вообще определить, есть ли на борту телефона GPS-оборудование или нет, и включено ли оно.

Я вроде как умею определять отсутствие данных, например по отсутсвию обновления:

    // Инициализация датчика ГЕО-положения
    isGeoPositionInfoUpdated=false; // Флаг, что свойство geoPositionInfo еще ни разу не обновлялось
    positionSource=QGeoPositionInfoSource::createDefaultSource(this);
    if(positionSource) {
        connect(positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)),
                this, SLOT(geoPositionInfoUpdate(QGeoPositionInfo)));
        positionSource->startUpdates();
    }

...

void DataFromLocalSensors::geoPositionInfoUpdate(const QGeoPositionInfo &info)
{
    geoPositionInfo=info;
    isGeoPositionInfoUpdated=true;
}


Но этот метод не позволяет понять по какой причине нет данных - толи GPS оборудования нет, толи GPS отключен, толи сигнала нет.

Пробовал определиться по списку availableSources():

    QString positionSourceNames;
    foreach( QString name, QGeoPositionInfoSource::availableSources())
        positionSourceNames+=(" "+name);
    positionSourceNames="["+positionSourceNames+']';


В результате на десктопе, где нет GPS, имеется один элемент - «geoclue». На андроидофонах имеется один элемент - «android». Причем его наличие не зависит от того, включен GPS или нет.

Так вот интесресует, как определить отсутствие/наличие/работу GPS оборудования. Это мне нужно для окошка, в котором пользователю показывается, какие сенсоры у телефона имеются и включены.

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)

на десктопе, где нет GPS

А как вообще возможно понять, что его нет? У меня, например, валяется GPS свисток, он определяется тупо как USB-UART.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.