GPS周り

AndroidGPS周りでハマったので、メモ。

現在地を取得するのに、

参考書とか読むと


LocationManager locationManager = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
locationManager.getLastKnownLocation("gps");

とかやってる。
こうすると、過去に取得した位置情報を取得してしまうみたい。
(位置情報が変わったときに対応できない)

getLastKnownLocation()を使う代わりに

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,this);

を使うと、現在地が取得できる。

※LocationListenerインタフェースで定義している
onLocationChanged(Location location)をオーバーライドして任意の
処理を書きましょう。
(locationから値を取り出すなり。。。)

ちなみに自分は
@Override
public void onLocationChanged(Location location) {
myLocate = location;
}
ってしておきました。
※mylocateはLocation型のクラス変数

そんな感じで、GPSはけっこうハマりました。

MyLocationOverlayってクラスを使えば、LocationListnerの実装をしなくても現在地が取得できるみたいです。
それは、またの機会に。