0

ユーザーの最後の既知の場所を取得しようとしています。場所を一度だけ読み取りたいため、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() メソッドをオーバーライドしますが、場所が変更されるたびに通知され、場所を一度だけ読み取る必要があります。では、ユーザーの現在の場所を一度取得する方法は?

4

1 に答える 1

0

場所が特定されたときにコールバックできるサービスまたはスレッドを作成してみませんか? そうすれば、頻繁にチェックし続けることができます。

于 2012-06-21T19:39:59.410 に答える