Геопозиционирование
ОС Аврора позволяет получать информацию со спутников GPS и ГЛОНАСС, включая информацию о текущей позиции, последнее известное положение, точность, расстояние и скорость.
Информация о местоположении является строго конфиденциальной, и ОС Аврора поддерживает данную политику, которая позволяет пользователю заблокировать возможность позиционирования.
Определение местоположения является составной частью общей архитектуры сотовой телефонии.
API QtPositioning используется для получения информации о местоположении и обновления спутниковой информации, а API QtLocation для доступа к службам определения местоположения (например, запрос на близлежащие объекты, доступ к фрагментам карты, а также расчет навигационных маршрутов между двумя точками). Все нативные компоненты API являются полностью открытым исходным кодом.
В качестве серверного модуля позиционирования в ОС Аврора применяется провайдер GeoClue, который использует oFono, чтобы получать MCC (мобильный код страны), MNC (мобильный сетевой код), LAC (код зоны местоположения), CID (идентификатор соты) и SS (мощность сигнала) о соседних вышках сотовой связи, затем применяет эту информацию вместе с информацией о публичном домене, полученной от службы определения местоположения Mozilla для определения приблизительного расположения устройства. Также существует онлайн-режим, при котором могут выполняться запросы API к веб-серверам службы определения местоположения Mozilla, для получения более точной информации о местоположении, используя информацию о соседних беспроводных сетях.
GeoClue поддерживает множество технологий и методов для нахождения текущего местоположения. Технологическое обеспечение реализовано в качестве провайдера, а новые провайдеры могут быть добавлены с помощью плагинов.
На данный момент в ОС Аврора используются некоторые специфичные плагины провайдера GeoClue, которые определяют местоположение и обновляют информацию со спутников, а также плагин для ConnMan, который позволяет пользователям управлять технологией GPS в зависимости от режима энергосбережения устройства, используя API ConnMan. Реализуется через вызовы D-Bus к основному плагину провайдера GeoClue.
Плагинами провайдера GeoClue являются следующие компоненты:
- geoclue-provider-hybris — основной плагин провайдера GeoClue, использующий интерфейсы libhybris для управления GPS;
- geoclue-provider-mlsdb — дополнительный плагин провайдера GeoClue, использующий службу определения местоположения Mozilla для обеспечения обновлений местоположения с помощью GPS;
- connman-plugin-jollagps, определяющий для ConnMan режим энергосбережения устройства, с помощью которого возможно управление состоянием GPS;
- проприетарные плагины позиционирования, имеющие закрытый исходный код.
Данные позиционирования могут быть предоставлены приложениям только при согласии пользователя. Данные включают в себя информацию об обновленных позициях, предоставленных устройством GPS (если он включен), а также информацию о спутниках, которая используется GPS.
Большинство компонентов имеют открытый исходный код, и разработчики компонентов активно просматривают проблемы, поднятые в рамках проекта.
В качестве альтернативы существующим провайдерам определения местоположения может быть использован плагин geoclue-gsmloc. GeoClue имеет соту GSM на основе провайдера определения местоположения (gsmloc), использующий oFono для получения информации о MCC, MNC, LAC и CID, которые он затем сопоставляет с данными, предоставленными веб-сервисом через таблицу поиска. Веб-сервис используется для получения широты и долготы текущей соты. Таблица поиска используется, чтобы отобразить код страны MCC по ISO (международная организация по стандартизации). Например, MCC 244 равняется коду из двух букв Финляндии FI ISO 3166-1 alpha-2. В настоящее время этот плагин не включен в ОС Аврора, но он может быть добавлен позднее.
Дополнительная информация о работе с геопозицией доступна в статье Управление эмуляцией.