
Я использую 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 для оценки местоположения, а вместо этого полагаться исключительно на сетевое позиционирование.