![Как определить, включены ли источники GPS с помощью QtPositioning в Ubuntu Touch?](https://rvso.com/image/1047588/%D0%9A%D0%B0%D0%BA%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%2C%20%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D1%8B%20%D0%BB%D0%B8%20%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8%20GPS%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20QtPositioning%20%D0%B2%20Ubuntu%20Touch%3F.png)
Я использую PositionSource для получения широты и долготы местоположения пользователя из данных GPS, предоставленных Ubuntu Touch. Однако мне нужно определить, был ли GPS включен пользователем.
При чтении официальной документации по PositionSourceздесь, я обнаружил, что он имеет свойстводействительныйкоторый, цитируя официальные документы, говорит:
Это свойство имеет значение true, если объект PositionSource получил допустимый бэкэнд-плагин для предоставления данных. Если false, другие методы PositionSource не будут иметь никакого эффекта.
Приложения должны проверять это свойство, чтобы определить, доступно ли и включено ли позиционирование на платформе выполнения, и реагировать соответствующим образом.
Однако это свойство, похоже, не обновляется, когда я включаю/отключаю службу определения местоположения в Ubuntu Touch. Я пробовал менять статус GPS как с помощью графического интерфейса (индикатор местоположения), так и из командной строки,
stop ubuntu-location-service-trust-stored
Есть ли еще какой-либо объект, который я могу отслеживать, чтобы проверить, включен/выключен ли GPS на телефоне?
решение1
Приложения не должны полагаться на знания о фактическом поставщике позиционирования, а вместо этого полагаться на оценки точности, предоставляемые с индивидуальными обновлениями местоположения (см.http://developer.ubuntu.com/api/qml/sdk-14.10/QtLocation.Position/#horizontalAccuracy-prop). Благодаря этому разработчикам приложений не нужно беспокоиться о конкретных характеристиках спутниковых систем позиционирования (например, GPS, ГЛОНАСС, Beidou), а вместо этого сосредоточиться на текущей задаче.
Более того, подсистема определения местоположения в Ubuntu может даже не использовать GPS для оценки местоположения, а вместо этого полагаться исключительно на сетевое позиционирование.