D-Bus интерфейс org.freedesktop.Geoclue.MasterClient
Интерфейс для работы с клиентом GeoClue.
| Шина: | системная |
| Служба: | org.freedesktop.Geoclue.Master |
| Объект: | путь до клиента |
| Интерфейс: | org.freedesktop.Geoclue.MasterClient |
Публичные типы
- enum AccuracyLevel
- enum AllowedResource
Сигналы
- PositionProviderChanged(string &name, string &description, string &service, string &path)
Методы
- SetRequirements(int accuracyLevel, int time, bool requireUpdates, int allowedResources)
- SetFiltration(bool enabled)
- PositionStart()
- GetPositionProvider(string &name, string &description, string &service, string &path)
Подробное описание
Через данный интерфейс можно работать с созданным клиентом Geoclue.
Приложениям, использующим данный интерфейс, необходимо указать разрешение Location.
Описание типов класса
enum AccuracyLevel
Уровень точности.
| Константа | Значение | Описание |
|---|---|---|
None |
0 |
Нет источника |
PostalCode |
4 |
Используется LBS провайдерами |
Detailed |
6 |
Используется GNSS провайдером |
Fused |
7 |
Используется Fused провайдером |
enum AllowedResource
Используемые источники.
Важно:
- Fused провайдер может использовать все разрешенные в настройках способы геолокации, игнорируя данный флаг.
- Указание любого из флагов
CellилиNetworkвоспринимается как LBS-источники. - Чтобы использовать эти источники, нужно разрешить их использование в настройках геолокации.
| Константа | Значение | Описание |
|---|---|---|
None |
0 |
Ничего |
Network |
1 |
Сетевые источники |
Cell |
2 |
Информация о вышках сотовой связи |
Gnss |
4 |
Спутники |
All |
2^10 - 1 |
Все источники |
Описание сигналов
PositionProviderChanged(string &name, string &description, string &service, string &path)
Уведомляет об изменении провайдера для клиента.
name— имя провайдера;description— описание провайдера;service— D-Bus-сервис провайдера (пустая строка, если провайдер пока не определён);path— D-Bus-путь провайдера.
Описание методов
SetRequirements(int accuracyLevel, int time, bool requireUpdates, int allowedResources)
Задаёт требования, которые клиент предъявляет к получаемому способу геопозиционирования.
accuracyLevel— точность геопозиционирования, см. перечисление AccuracyLevel.time— период обновлений в секундах. На данный момент игнорируется (считается равным0), но может быть использован в будущем. Значение0задаёт максимально возможную скорость, но не быстрее 1 обновления в секундуrequireUpdates— нужно ли испускать сигнал об изменении данных. На данный момент игнорируется (считается равнымtrue), но может быть использован в будущем.allowedResources— разрешенные способы геопозиционирования, см. перечисление AllowedResource.
SetFiltration(bool enabled)
Задаёт включённость Fused провайдера.
По умолчанию значение равно false.
Fused также может быть включён с использованием метода SetRequirements.
Но если в аргументе allowedResources метода SetRequirements
уже передано разрешение на использование LBS и GNSS, тогда вызывать данный метод (SetFiltration) не нужно.
PositionStart()
Запускает поиск подходящего провайдера после вызова SetRequirements и SetFiltration.
На данный момент после вызова метода сменить требования к провайдеру нельзя, для этого нужно пересоздавать клиент GeoClue и настроить его заново.
GetPositionProvider(string &name, string &description, string &service, string &path)
Информация о текущем провайдере для клиента:
name— имя провайдера;description— описание провайдера;service— D-Bus-сервис провайдера (пустая строка, если провайдер пока не определён);path— D-Bus-путь провайдера.