2013-02-01 59 views
2

我写了一段代码,以便了解我的客户(出租车司机)在我的出租车预订应用程序上为他的设备启用位置服务时会遇到的情况。我在同一个监听器上启用了使用网络和GPS提供商的位置服务。使用GPS和网络提供商在Android上定位服务的体验

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 
    // God.KM20TIME, God.KM20DISTANCE, (LocationListener) updates); 

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, God.KM20TIME, 
      God.KM20DISTANCE, (LocationListener) updates); 

我的电池耗尽比平时快得多。我的手机也升温超过正常。但我期望的一致性非常低。我决定不使用GPS,只有网络提供商。我正在建立一个出租车预订应用程序,所以我需要知道驾驶室的位置。即使我知道驾驶室在大约15分钟后(约300米)的位置,我应该会很好。所以我想我决定不使用这两种提供程序过度设计这一逻辑是正确的。我想知道有没有人可以在这里与不同的经历联系起来?我错过了什么吗?

+2

这是很好阅读http://blog.shinetech.com/2011/10/14/a-good-look-at-android-location-data/ – Zyoo

+0

是的,很好的阅读,upvote为你..谢谢 – Siddharth

回答

1

根据我的经验,网络提供商的质量可能会有所不同。

网络提供商使用WiFi和手机信号塔信息的组合来提供位置信息。

如果你碰巧接近一个Wifi网络,这在城市化地区很普遍,但不在城市之外,你通常会得到非常好的准确性。

但是,在Wifi的范围之外,您处于手机信号塔的摆布之中。在这里,精确度取决于细胞塔的质量和特征,以及可用于对您的位置进行三角测量的细胞塔的数量。

在这些情况下,质量可能会有所不同,不管是在两个位置之间,还取决于您使用哪个载波,它们的信号塔之间的距离,以及它们具有的信元塔的生成和生成。较新的版本具有更多关于位置的功能,例如可能会自行提供。

我的应用程序运行在瑞典,在我国的一些地区,运营商可能在非常大的区域内只有一个塔。在这些情况下,所有经纬度修正都直接落在塔上,精度甚至达到20,000至30.000米。

基本上,我的观点是,当使用网络提供商时,如果你不在Wifi附近,我会非常满意300米的精度。

关于电池/热量 - 根据您的要求,您可以使用时间/距离参数进行大量工作,以获得“足够好”的更新频率,而不会对手机造成太大的损失。

+0

不幸的是,随着手机数量的增加,很难想出时间/距离的组合。 – Siddharth

+0

是的,我知道,对于Android来说非常困难。电池使用寿命中的成本,以启动位置管理器,获得修复,然后关闭,例如,在很大程度上取决于操作系统版本和实施细节。 – Mathias

相关问题