web-dev-qa-db-ja.com

map.setMyLocationEnabled(true)が実際に行うこと

私は設定しています:

map.setMyLocationEnabled(true)

しかし、私はこれが本当に何をしているのかと思っています。私が知っていること:

  1. 地図の右上隅にある「自分を探す」ボタンが表示されます
  2. 現在の場所を表す青いアイコンが地図に表示されます

ここに私の懸念があります。位置認識アプリを書いていますが、バッテリーが心配です。アプリの他の場所(設定を使用)で、LocationManagerをセットアップし、位置イベントをリッスンしてログに記録できるようにします。しかし、私の好みの一部は、更新を取得する精度と間隔です。

LocationManagerをオフにすると:

locationManange.removeUpdates(LocationListener listener);

アプリ全体で位置情報サービスをオフにする予定です。それでも、アプリの位置情報が更新されていることを示す小さなGPSアイコンが電話のヘッダーバーに表示されます。これは、マップビューでこれを設定したことが原因であることがわかります。

map.setMyLocationEnabled(true);

私は当初、map.setMyLocationEnabled(true)を設定するLocationManagerを設定して場所の更新をリッスンしないと、効果がない(つまり、場所アイコンやボタンがない)と考えていました。しかし、それは真実ではありません。

それは、map.setMyLocationEnabled(true)を呼び出すことで、googleが独自のLocationManagerを独自の設定でセットアップしていることを意味しますか?私は本当にmap.setMyLocationEnabled(true)を呼び出したいのですが、Googleが内部で行っていることではなく、位置情報の更新に私の設定を使用するようにしています。それは可能ですか?ドキュメントで何かを見逃しましたか? map.setMyLocationEnabled(true)を呼び出したときに、LocationManagerに設定されている精度や間隔について何も見つかりません。

24

それは、map.setMyLocationEnabled(true)を呼び出すことで、googleが独自のLocationManagerを独自の設定でセットアップしていることを意味しますか?

ではない正確に。マップV2 デフォルトでLocationClient を使用します。

私は本当にmap.setMyLocationEnabled(true)を呼び出したいのですが、Googleが内部で行っていることではなく、位置情報の更新に私の設定を使用するようにしています。それは可能ですか?

se setLocationSource() を使用して、my-locationレイヤーで使用する独自の位置データを提供できます。 これはサンプルプロジェクトです これを示しています。

13
CommonsWare