在Android中同时使用GPS和网络提供商

Gal*_*lip 21 gps android location geolocation

我在我的应用程序中实现了一个使用网络提供程序的locationlistener.

这一切都很好,因为我想要一个快速的位置和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);
Run Code Online (Sandbox Code Playgroud)

这是否可以使用相同的重写onLocationChanged()?

我如何才能看到GPS是否已获得位置?

谢谢,

小智 27

您当然可以为多个提供程序使用相同的侦听器.locationmanager.getProvidersCriteria对象一起使用然后按准确度排序或者只是听取所有这些对象可能更好 .虽然没有太多实际的区别.

onLocationChanged回调给你一个位置的对象,其中有一个 getProvider()你可以用它来确定它是从哪里来的方法.它还有一个 getAccuracy()方法,因此您还可以按照准确度对最近的修复进行排序.