ユーザーの最後の既知の場所を取得しようとしています。場所を一度だけ読み取りたいため、getLastKnownLocation メソッドを使用しています。実際のハンドセットではなくエミュレーターでアプリをテストしていますが、場所は null です。私のコード
locMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
Location myLoc = locMgr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(myLoc != null)
{}
else
{
Toast.makeText(getApplicationContext(), "coudn't get your location", Toast.LENGTH_LONG).show();
}
問題は、(DDMS から) エミュレーターに場所を送信するタイミングがわからないことです (アプリを開く前後に送信しようとした場合、時々動作します)
LocationListener を imlemting して場所を取得し、次のようにします。
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 3, this);
正常に動作する onLocationChanged() メソッドをオーバーライドしますが、場所が変更されるたびに通知され、場所を一度だけ読み取る必要があります。では、ユーザーの現在の場所を一度取得する方法は?