Документация
ОС Аврора 5.0.1

Класс LocationSettings

(Sailfish::Mdm::LocationSettings)

Класс LocationSettings управляет функциями геопозиционирования устройства. Подробнее…

Заголовочный файл: #include <mdm-location.h>

Публичные типы

  • enum DataSource { NoDataSources, OnlineDataSources, DeviceSensorsData, BluetoothData, ..., LastDataSource }
  • flags DataSources
  • enum LocationMode { HighAccuracyMode, BatterySavingMode, DeviceOnlyMode }
  • enum Mode

Свойства

Публичные методы

Сигналы

Подробное описание

Класс LocationSettings управляет функциями геопозиционирования устройства.

С его помощью можно включать и отключать различные методы работы с GPS и aGPS.

Для использования данного класса в qmake-настройки проекта клиента следует добавить следующее:

 CONFIG += link_pkgconfig
 PKGCONFIG += sailfishmdm

и затем #include <mdm-location.h>.

Пример использования:

 #include <mdm-location.h>
 void enableOrDisableGps(bool enable, QObject *parent)
 {
     Sailfish::Mdm::LocationSettings *settings = new Sailfish::Mdm::LocationSettings(parent);
     settings->setGpsEnabled(enable);
     settings->setGpsFlightMode(!enable);
     settings->setLocationEnabled(enable);
 }

Описание типов класса

enum LocationSettings::DataSource flags LocationSettings::DataSources

Определяет доступные источники данных о местоположении.

Константа Значение Описание
Sailfish::Mdm::LocationSettings::NoDataSources 0UL Источники данных не используются
Sailfish::Mdm::LocationSettings::OnlineDataSources 1UL<<0 Онлайн-сервисы
Sailfish::Mdm::LocationSettings::DeviceSensorsData 1UL<<5 Данные датчика устройства
Sailfish::Mdm::LocationSettings::BluetoothData 1UL<<10 Данные о местоположении по Bluetooth
Sailfish::Mdm::LocationSettings::WlanData 1UL<<15 Данные о местоположении WLAN
Sailfish::Mdm::LocationSettings::CellTowerData 1UL<<20 Вышки мобильной сотовой связи
Sailfish::Mdm::LocationSettings::GpsData 1UL<<25 Спутниковая система навигации (GPS)
Sailfish::Mdm::LocationSettings::GlonassData 1UL<<26 Глобальная навигационная спутниковая система (ГЛОНАСС)
Sailfish::Mdm::LocationSettings::BeidouData 1UL<<27 Навигационная спутниковая система BeiDou (BDS)
Sailfish::Mdm::LocationSettings::GalileoData 1UL<<28 Спутниковая система Галилео
Sailfish::Mdm::LocationSettings::QzssData 1UL<<29 Квазизенитная спутниковая система (QZSS)
Sailfish::Mdm::LocationSettings::SbasData 1UL<<30 Спутниковая система дополнения (SBAS)
Sailfish::Mdm::LocationSettings::LastDataSource 1UL<<31 Значение-заполнитель, указывающее последнее возможное значение в этом перечислении.

Тип DataSources type — это typedef для QFlags<DataSource>. Он хранит комбинацию OR значений DataSource.

enum LocationSettings::LocationMode

В данном перечислении описаны конкретные способы определения местоположения устройства. Каждый способ по своей сути является краткой формой выбора нескольких настроек.

Константа Значение Описание
Sailfish::Mdm::LocationSettings::HighAccuracyMode 0 Для определения местоположения устройства используются GPS (Глобальная система позиционирования), а также aGPS (Assisted GPS) или какой-либо поставщик сетевого местоположения
Sailfish::Mdm::LocationSettings::BatterySavingMode 1 Для определения местоположения устройства используются поставщики сетевого местоположения и аппаратное позиционирование (например, с помощью триангуляции базовых станций), но не GPS
Sailfish::Mdm::LocationSettings::DeviceOnlyMode 2 Для определения местоположения устройства используются GPS и aGPS, а также аппаратное позиционирование (например, с помощью триангуляции базовых станций), но не поставщики местоположения

enum LocationSettings::Mode

Данное перечисление определяет синхронный и асинхронный способы получения и изменения настроек.

Константа Значение Описание
Sailfish::Mdm::LocationSettings::AsynchronousMode 0 При получении или изменении значения настройки метод сразу же передаёт управление вызывающему коду. При изменении значения сама настройка не изменяется до момента подтверждения изменения от backend-библиотек
Sailfish::Mdm::LocationSettings::SynchronousMode 1 Попытки получения или изменения настройки блокируют текущий поток исполнения до окончания выполнения этих операций

Описание свойств

allowedDataSources : DataSources

Содержит источники данных, с помощью которых разрешено определять местоположение устройства.

Методы доступа:

  • DataSources allowedDataSources() const
  • void setAllowedDataSources(DataSources dataSources)

Сигнал уведомления:

  • void allowedDataSourcesChanged()

gpsAvailable : const bool

Истинно, если устройство имеет модуль GPS и поддерживает данный способ позиционирования.

Методы доступа:

  • bool gpsAvailable() const

gpsEnabled : bool

Истинно, если в настоящий момент на устройстве включено позиционирование с помощью GPS.

Если значением свойства является true и позиционирование включено на глобальном уровне (согласно значению свойства locationEnabled), тогда поставщик услуг GPS будет предоставлять клиентским приложениям обновления данных геопозиционирования.

Если значением свойства является true, но позиционирование отключено на глобальном уровне (согласно значению свойства locationEnabled), тогда поставщик услуг GPS НЕ БУДЕТ предоставлять обновления данных геопозиционирования, модуль GPS будет отключён. Т.е. поведение будет аналогично тому, как если бы GPS-позиционирование было отключено.

Внимание! Для того, чтобы корректно включить GPS в MDM-режиме, нужно сначала отключить режим полёта командой setGpsFlightMode(false), потом включить GPS командой setGpsEnabled(enable). Кроме того, перед использованием setGpsEnabled и setGpsFlightMode нужно проверять флаги статуса GPS при помощи функций gpsEnabled и gpsFlightMode, чтобы корректно передать значения в функции gpsEnabled и gpsFlightMode.

Примечание: путём изменения данного свойства нельзя предотвратить изменение этой настройки через пользовательский интерфейс системных настроек. Чтобы запретить пользователю менять значение этой настройки, клиентское приложение MDM должно также применить соответствующую политику безопасности средствами libsailfishpolicy API.

Методы доступа:

  • bool gpsEnabled() const
  • void setGpsEnabled(bool value)

Сигнал уведомления:

  • void gpsEnabledChanged()

locationEnabled : bool

Истинно, если в настоящий момент на устройстве включено позиционирование.

Если позиционирование включено, и при этом разрешён по крайней мере один способ позиционирования (например, с помощью GPS или aGPS), тогда клиентские приложения с соответствующими привилегиями смогут получать обновления данных геопозиционирования.

Примечание: путём изменения данного свойства нельзя предотвратить изменение этой настройки через пользовательский интерфейс системных настроек. Чтобы запретить пользователю менять значение этой настройки, клиентское приложение MDM должно также применить соответствующую политику безопасности средствами libsailfishpolicy API.

Методы доступа:

  • bool locationEnabled() const
  • void setLocationEnabled(bool value)

Сигнал уведомления:

  • void locationEnabledChanged()

locationMode : LocationMode

Содержит значение перечисления LocationMode, в котором определены конкретные способы определения местоположения устройства.

Следует обратить внимание, что каждый способ по своей сути является краткой формой выбора нескольких настроек. Каждая из этих настроек может быть изменена индивидуально с помощью других методов данного класса. Дополнительную информацию можно прочитать в описании перечисления LocationMode.

Также следует обратить внимание, что данная операция может быть не завершена, если не были приняты соответствующие условия использования, или если поставщики сетевого местоположения не доступны. В этом случае будут применены ближайшие подходящие настройки для заданного свойства locationMode.

Методы доступа:

  • LocationMode locationMode() const
  • void setLocationMode(LocationMode locationMode)

Сигнал уведомления:

  • void locationModeChanged()

Описание методов класса

LocationSettings::LocationSettings(QObject *parent = Q_NULLPTR)

Конструктор по умолчанию для класса LocationSettings.

LocationSettings::LocationSettings(Mode mode, QObject *parent = Q_NULLPTR)

Конструктор по умолчанию для класса LocationSettings.

bool LocationSettings::agpsAgreementAccepted(const QString &agpsProvider) const

Возвращает true, если было принято соглашение об условиях использования с поставщиком aGPS, имя которого совпадает с заданным именем agpsProvider.

См. также setAgpsAgreementAccepted().

bool LocationSettings::agpsAvailable(const QString &agpsProvider) const

Возвращает true, если у устройства есть провайдер aGPS, имя которого совпадает с заданным именем agpsProvider.

Поставщиком Agps может быть, например, "here" или "mls" (Mozilla Location Services).

bool LocationSettings::agpsEnabled(const QString &agpsProvider) const

Возвращает true, если включён провайдер aGPS, имя которого совпадает с заданным именем agpsProvider.

Если провайдер aGPS включён и позиционирование включено глобально (как сообщает locationEnabled()) то провайдер aGPS будет предоставлять клиентам обновления местоположения.

Следует обратить внимание, что если провайдер aGPS включён, но позиционирование глобально отключено (как сообщает locationEnabled()), то провайдер aGPS НЕ будет предоставлять никаких обновлений местоположения и не будет пытаться связаться с серверными службами aGPS, как будто сам отключён.

См. также setAgpsEnabled().

void LocationSettings::allowDataSource(DataSource dataSource)

Позволяет клиенту разрешить устройству использовать указанный dataSource для определения своего местоположения.

QStringList LocationSettings::availableAgpsProviders() const

Возвращает имена известных поставщиков сетевых расположений и помощников-поставщиков локального расположения устройства, которые доступны на устройстве.

void LocationSettings::disallowDataSource(DataSource dataSource)

Позволяет клиенту запретить устройству использовать указанный dataSource для определения своего местоположения.

bool LocationSettings::gpsFlightMode() const

Возвращает true, если модуль GPS в настоящий момент отключён из-за включённого режима полёта.

Следует обратить внимание, что если модуль GPS отключён из-за включённого режима полёта, поставщик услуг GPS НЕ БУДЕТ предоставлять обновления данных геопозиционирования.

См. также setGpsFlightMode().

[signal] void LocationSettings::gpsFlightModeChanged()

Сигнал испускается при отключении модуля GPS путём включением режима полёта, включении модуля GPS путём отключением режима полёта или же после принудительного разрешения использования GPS даже при включённом режиме полёта.

void LocationSettings::setAgpsAgreementAccepted(const QString &agpsProvider, bool value)

Позволяет клиенту принять или отозвать соглашение об условиях использования с поставщиком aGPS, имя которого совпадает с заданным именем agpsProvider в зависимости от заданного значения value.

См. также agpsAgreementAccepted().

void LocationSettings::setAgpsEnabled(const QString &agpsProvider, bool value)

Позволяет клиенту включать или отключать поставщика aGPS, имя которого совпадает с заданным именем agpsProvider, в зависимости от заданной возможности value.

Следует обратить внимание, что этот метод позволяет клиенту MDM включать или отключать провайдеров aGPS, но не предотвращает изменение этих настроек, например, через настройки UI. Чтобы запретить пользователю менять значение этой настройки, клиентское приложение MDM должно также применить соответствующую политику безопасности средствами libsailfishpolicy API.

См. также agpsEnabled().

void LocationSettings::setGpsFlightMode(bool value)

Позволяет клиентскому приложению в зависимости от значения параметра value, соответственно, либо включить, либо отключить режим полёта для модуля GPS.

Следует обратить внимание, что с помощью этого метода клиентское приложение MDM может задать режим полёта для модуля GPS. Однако с его помощью нельзя предотвратить изменение этой настройки через пользовательский интерфейс системных настроек. Чтобы запретить пользователю менять значение этой настройки, клиентское приложение MDM должно также применить соответствующую политику безопасности средствами libsailfishpolicy API.

См. также gpsFlightMode().

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.