2011-12-06 9 views
0

MyLocationOverlayには、GPSをLocationProviderとみなす必要があるとはどういう意味ですか?Android:GPSのみを使用しているMyLocationOverlay

参照先:enableMyLocation() =>MyLocationを有効にしようとしました。LocationManager.GPS_PROVIDERLocationManager.NETWORK_PROVIDERの更新を登録しています。

しかし、私はGPS_PROVIDERだけ必要です。 ヒント?

答えて

1

私が知る限り、これをオフにする方法はありません。しかし、次のことができますGPSからではありませんアップデートを無視して、)

  1. オーバーライドonLocationChangedと(location.getProviderを見て - 私はそれがあまりにも必要とする場合、これはまだネットワークプロバイダからあなたの場所を描画します推測しているが。
  2. MyLocationOverlayはLocationListenerを実装しています。つまり、enableLocationはおそらく自分自身を使用してロケーションマネージャーを使用して更新を要求します。つまり、独自のCriteriaでrequestLocationUpdatesを呼び出すことができます。しかし、Google Mapsはオープンソースではないので、enableLocationも更新されているようなフラグがあるかもしれません。もしあなたが何をしたのか分かっていれば、おそらくそれを反射で複製することができます。
  3. ネットワークプロバイダを 'オフにする' TestProviderEnabled()を使用すると、デバイス上でmock location permission +そのオプションを有効にする必要があります。
+0

ok thx。おそらく、MyLocationOverlayクラスを使用しないで、LocationListenerを使用してすべてを自分で実装するのが最良の解決策です。実際、私はとにかくMyLocationOverlayを「高速」なソリューションのように見せていただけなので、使いたいと思っていました。 – nr1

+0

これは非常に迅速な解決策ですが、なぜネットワークプロバイダーが欲しいのですか?それはGPSよりも速く修正を返し、GPSが来たらより正確に更新されます(いくつかの状況ではネットワークはGPSよりも正確かもしれません...) – FunkTheMonk