在我的应用程序中,GPS需要太多时间来获取位置。
如何在同一环境中同时使用GPS_SATELLITES和GPS _NETWORK_PROVIDERS的GPS并获取最近GPS的价值?
答案 0 :(得分:4)
跟踪您当前位置的Location
对象。从两个请求位置更新
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
LOCATION_UPDATE_FREQUENCY, LOCATION_UPDATE_MIN_DISTANCE,
gpsListener);
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, LOCATION_UPDATE_FREQUENCY,
LOCATION_UPDATE_MIN_DISTANCE, networkListener);
然后当您在任一监听器的onLocationChanged
中收到回复时,只需替换您存储的位置变量,或仅在X
秒更新,X%
更准确时替换它,X
米远离你的上次阅读等等。
答案 1 :(得分:1)
您还可以使用LocationManager.getAllProviders()
,然后调用LocationManager.getLastKnownLocation(provider)
来检索每个可用提供商上次调用时找到的最后位置。这样,如果另一个应用程序在一分钟之前使用了GPS,那么您可以继续前进并相信他们的用户没有在远处再次搜索卫星的情况下使用它。