我正在使用 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 来提供位置估计,而是完全依赖基于网络的定位。