2011-12-06 60 views
0

是否有可能告訴MyLocationOverlay它應該只考慮GPS作爲LocationProviderAndroid:僅使用GPS的MyLocationOverlay

參考說明:enableMyLocation() =>嘗試啓用MyLocation,註冊從LocationManager.GPS_PROVIDERLocationManager.NETWORK_PROVIDER的更新。我只需要GPS_PROVIDER。 任何提示?

回答

1

據我所知,沒有一種方法可以關閉它。然而,你可以:

  1. 覆蓋onLocationChanged看看location.getProvider(),忽略不是來自GPS的更新 - 儘管我猜這仍將從網絡提供商提請您的位置,如果它需要太多。
  2. MyLocationOverlay實現LocationListener,這意味着enableLocation可能會使用位置管理器自己請求更新 - 您可以改爲使用自己的Criteria來調用requestLocationUpdates。然而,谷歌地圖不是開源的,所以可能會有一些標誌或enableLocation也會更新..如果你知道它做了什麼,你可以用反射來複制它..
  3. '關閉'網絡提供商使用TestProviderEnabled()需要模擬位置權限+該設備上啓用該選項。
+0

ok thx。所以可能這是最好的解決方案,不要使用MyLocationOverlay類,而是通過使用LocationListener自己實現一切。事實上,無論如何我只是想使用MyLocationOverlay,因爲它看起來像一個「快速」解決方案。 – nr1

+0

這是一個非常快速的解決方案,但您爲什麼不想要網絡提供商?它會比GPS更快地返回一個修復程序,當GPS進入時,它會更新到更準確的(我猜在某些情況下,網絡可能比GPS更精確......) – FunkTheMonk