我已经在我的应用程序中实现了一个locationlistener,它使用Network Provider。
这一切都很好,因为我想要一个快速的位置和GPS供应商,它需要很长时间。
但我在我的应用程序中已经达到了一个点,位置必须是准确的(最大5-10米)。
我想知道是否有可能同时使用GPS提供商和网络提供商,然后获得两者的最佳结果?还有没有可能让我知道GPS供应商何时向我提供了GPS位置?
所以基本上:
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
这是否适用于相同的被覆盖的onLocationChanged()?
我怎么才能知道GPS有没有定位?
谢谢,
发布于 2011-01-05 01:16:36
当然,您可以对多个提供程序使用相同的侦听器。将locationmanager.getProviders
与Criteria
对象一起使用可能会更好,然后按精度排序,或者只监听所有的精度。虽然没有太大的实际区别。
onLocationChanged
回调提供了一个Location对象,该对象有一个getProvider()
方法,您可以使用它来确定它来自哪里。它还具有getAccuracy()
方法,因此您还可以根据准确性对最近的修复进行排序。
发布于 2012-12-14 01:33:44
理想情况下,如果您不关心电池的使用情况,那么使用两个提供商都是很好的。正如达伦所解释的,您可以使用getProvider()和getAccuracy()来过滤坐标。
http://blog.shinetech.com/2011/10/14/a-good-look-at-android-location-data/
https://stackoverflow.com/questions/4595522
复制相似问题