![如何在 Ubuntu Touch 中使用 QtPositioning 偵測 GPS 來源是否啟用?](https://rvso.com/image/1047588/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%20Touch%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20QtPositioning%20%E5%81%B5%E6%B8%AC%20GPS%20%E4%BE%86%E6%BA%90%E6%98%AF%E5%90%A6%E5%95%9F%E7%94%A8%EF%BC%9F.png)
我使用 PositionSource 從 Ubuntu Touch 提供的 GPS 資料取得使用者位置的緯度和經度。但是我需要偵測使用者是否啟用了 GPS。
閱讀 PositionSource 的官方文檔這裡,我發現它有這樣的屬性有效的其中引用官方文件說,
如果 PositionSource 物件已取得有效的後端插件來提供數據,則此屬性為 true。如果為 false,則 PositionSource 上的其他方法將無法運作。
應用程式應檢查此屬性以確定定位是否可用並在運行時平台上啟用,並做出相應反應。
然而,當我在 Ubuntu Touch 中啟用/停用位置服務時,此屬性似乎沒有更新。我嘗試使用 GUI(位置指示器)和命令列更改 GPS 狀態,
stop ubuntu-location-service-trust-stored
我可以追蹤任何其他屬性來檢查手機上的 GPS 是否啟用/停用嗎?
答案1
應用程式不應依賴實際定位提供者的知識,而應依賴各個位置更新提供的精度估計(請參閱http://developer.ubuntu.com/api/qml/sdk-14.10/QtLocation.Position/#horizontalAccuracy-prop)。這樣,應用程式開發人員無需擔心衛星定位系統(例如 GPS、GLONASS、北斗)的特定特性,而是專注於手邊的任務。
更重要的是,Ubuntu 中的定位子系統甚至可能不使用 GPS 來提供位置估計,而是僅依賴基於網路的定位。