如何改善Android平台上缓慢的GPS信号采集?
我正在测试基于this open source code的简单GPS记录器,虽然它似乎有效,但它首先获取信号并开始显示GPS坐标可能需要10-15分钟。但是,在同一台设备上运行谷歌地图应用程序似乎几乎立即获得一个信号(它甚至能够实时检测我面向的方向),而GPS记录器服务仍然表示无法找到信号。
为什么谷歌地图获取GPS信号的速度如此之快,而标准GPS系统服务需要永远?
启动GPS服务的具体代码是:
private void startLoggerService() {
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
2000,
1,
locationListener);
}
答案 0 :(得分:8)
在使用位置数据时,您应该注意一些事项,并且一定要考虑到这些:
LocationManager.NETWORK_PROVIDER
。在大多数情况下,这将给出足够准确的结果,以便在您的应用中使用(我玩过的大多数设备似乎都会产生大约60~65米的最差情况),但更重要的是:它更快,更快。请注意,与GPS一样,用户可以在系统设置中启用和禁用功能。有关详细信息,请参阅Using the Location Manager。侧面说明:您所面对的方向的实时指示与位置无关,而是来自磁场传感器(读取:数字罗盘)或陀螺仪。两者都处理设备的方向,而不是位置。
答案 1 :(得分:2)
代码中的1表示如果设备移动1米,提供商将仅广播该位置。尝试将其设置为0.
API文档声明:
“可以使用minTime和minDistance参数控制通知的频率。如果minTime大于0,则LocationManager可能会在位置更新之间休息几分钟,以节省电量。如果minDistance大于0,则位置将只有在设备移动minDistance米时才会广播。要尽可能频繁地获取通知,请将两个参数都设置为0.“
答案 2 :(得分:0)
如果谷歌地图显示您的方向,它必须使用GPS修复。 Google地图必须使用您可以使用Location.getLastKnownLocation获得的最新gps修补程序。据推测,如果该位置不是太旧,谷歌地图决定它比没有任何东西更好,并在你等待新的GPS修复时显示给你。
当您在室内时,GPS修复通常会非常缓慢或根本不会。我假设你正在开发你试图获得GPS修复?你可能不得不站起来走出去。
许多手机都有相当糟糕的GPS接收器。即使在晴朗的室外天空,我也拥有手机,这需要花费很长时间才能获得第一个GPS定位。它糟透了,它是一个骗局,但它是真的。